ホーリーのプログラミング日記

ホーリーのプログラミング日記

エキセントリック・スーパーアプリクリエイター / アプリ総DL数 約180万 / 全然分からない 俺は雰囲気でアプリを作ってる / iOS : apple.co/3m3HxSm / Android : bit.ly/3ma0liZ

C#で2つの日付から時間差を取得するのが全然分かりまへんでした

 

アプリを作る作る言いながら、ここ2ヶ月くらいUnityすら触っていませんでした。

んで、やっと昨日から触り始めたんですよ。前に書いた「命の時間」ていうアプリを作ってみようと。

「命の時間」ていうアプリを作ります - ホーリーのプログラミング日記

 

これは任意の日付を入力して、1年後とか5年後とか、その日までの時間を表示するっていう、ただそれだけのアプリです。

いつも自分の誕生日が来るたびに、一年早いなって感じるんで、その時間を可視化したかったんですよね。だから完全に自分用のアプリです。

(周りの2人からニーズがあるんで、一応3人はユーザーが付く予定w)

 

前にWEBのそれは作ったんですよ。僕は32歳なんですけど、33歳の誕生日までのカウントダウンツールを。

http://gevvoi.lovepop.jp/countDown.html

 

f:id:gevvoihorry:20170329055029p:plain

(こんな適当なやつです)

 

仕組みはこれと同じですね。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を使えなかったんです。

 

f:id:gevvoihorry:20170329055619p:plain

 

ここまで出力出来たんで、あとは問題ないはずです。多分。。