C#で2つの日付から時間差を取得するのが全然分かりまへんでした
アプリを作る作る言いながら、ここ2ヶ月くらいUnityすら触っていませんでした。
んで、やっと昨日から触り始めたんですよ。前に書いた「命の時間」ていうアプリを作ってみようと。
「命の時間」ていうアプリを作ります - ホーリーのプログラミング日記
これは任意の日付を入力して、1年後とか5年後とか、その日までの時間を表示するっていう、ただそれだけのアプリです。
いつも自分の誕生日が来るたびに、一年早いなって感じるんで、その時間を可視化したかったんですよね。だから完全に自分用のアプリです。
(周りの2人からニーズがあるんで、一応3人はユーザーが付く予定w)
前にWEBのそれは作ったんですよ。僕は32歳なんですけど、33歳の誕生日までのカウントダウンツールを。
http://gevvoi.lovepop.jp/countDown.html
(こんな適当なやつです)
仕組みはこれと同じですね。JavaScriptで書いたんですけど、今度はC#でこれを書いてみようと思いました。
しかしですね、タイトル通りのことなんですが、C#で2つの日付から時間差を取得するのが全然分からないんですよね。JavaScriptとかPHPでは今日まで簡単に分かったんですが、ググってもググっても、よく分かりませんでした。
んで格闘すること半日。ようやく分かった気がします。雰囲気だけは。
using UnityEngine;
using System.Collections;
using System;
public class Timemanager : MonoBehaviour {
DateTime dt1 = new DateTime(2018, 3, 27, 20, 30, 0);
DateTime dt2;
TimeSpan ts;
string str;
int num;
// Use this for initialization
void Start () {
DateTime dt2 = DateTime.Now;
ts = dt1 - dt2;
num = ts.Days;
Debug.Log (ts);
Debug.Log (num);
Debug.Log(new DateTime (1).Add(ts).ToString("HH:mm:ss"));
}
// Update is called once per frame
void Update () {
}
}
「2018年3月27日20時30分」から「今日」の日付を引いた、その時間差を求めてみました。
僕、苦労してここまで来たんですけど、これってみんな知ってるんですかね?普通は。
(初歩中の初歩な気がして怖いです。。)
全国に5人は同志がいそうなんで、参考にしたサイトを貼っておきましょうw
日時、時間の計算をする: .NET Tips: C#, VB.NET
日時(DateTimeオブジェクト)の情報を取得する: .NET Tips: C#, VB.NET
C# TimeSpan の Format 指定して文字列に変換する
最初にハマったのは、using System; を宣言するところですね。宣言て表現が正しいのか分かりませんが、これを書いてないとDateTimeを使えなかったんです。
ここまで出力出来たんで、あとは問題ないはずです。多分。。