DataCoreを使って日付比較をする方法

DSC04372

こんにちは,吉村です.
段々暖かくなってきましたね.桜が綺麗に咲いています.

さて,今日はDataCoreで管理しているDate型の値を用いて,今日の日付よりも新しいか否かを判定する方法を説明します. 下記の通り2つのNSDate()型変数を定義して,比較をしてみます.

これをPlaygroundで実行すると,「d1 is order than d2」と表示されます. これはNSDate型はミリ秒まで管理するために,微妙に違う時間なので後で定義したd2の方が新しいと判定されます.

念の為にNSDateからStringにキャストしてミリ秒まで表示してみましょう.

[2015-04-05 17:27:16.881]
[2015-04-05 17:27:16.886] 

と0.05秒ずれて表示されています. 

でも,日付で比較したい場合は,dateFormatを日付までにして比較すれば大丈夫です. 

 

 ところで,NSDateを初期化する時に,別の時間を指定することも可能です.

NSDate(timeIntervalSinceNow:秒)で,現在時刻から指定の時間ずれた日時で初期化することが可能です.例えば上記であれば,60秒×60分×24時間で明日の現在時刻でNSDateを初期化することが可能です.因みに,-60×60×24にすれば昨日の現在時刻で初期化されます.

日付の比較は,どんな言語でも少しややこしいですね

 


Add a Comment

メールアドレスが公開されることはありません。