概要 anchor.png Edit

SysTimeで表される時刻を四則演算します。

Page Top

ポイント anchor.png Edit

基本的には、SysTimeとDurationの計算ということになります。

  • SysTime + duration --> SysTime
  • SysTime - duration --> SysTime
  • SysTime + duration --> SysTime
  • SysTime - duration --> SysTime

Durationの作り方ですが、Duration自体は core.time に含まれています。そのなかの、dur関数を使います。

Everything is expanded.Everything is shortened.
1
2
3
 
 
 
auto duration1 = dur!"seconds"(312);
auto duration2 = dur!"usecs"(5121024);
auto duration3 = dur!"weeks"(12);

見ての通り、テンプレート関数になっていて、テンプレート引数に単位を示す文字列を渡してやることで、欲しい単位の時間を得ることが出来ます。対応しているのは、"weeks"(週間), "days"(日間), "hours"(時間), "minutes"(分間), "seconds"(秒間), "msecs"(ミリ秒間=1/1000秒間), "usecs"(マイクロ秒間=1/1000000秒間), "hnsecs"(ヘクトナノ秒間=1/10000000秒間), "nsecs"(ナノ秒間=1/1000000000)となります。

Page Top

サンプルコード anchor.png Edit

Everything is expanded.Everything is shortened.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
 
 
 
 
-
|
|
|
|
-
!
-
!
-
!
!
import std.stdio, std.datetime;
import core.time;
 
void main(string[] args)
{
    auto duration1 = dur!"seconds"(312);
    auto duration2 = dur!"usecs"(5121024);
    auto duration3 = dur!"weeks"(12);
    auto currentTime = Clock.currTime();
    // 足し算
    writeln( (currentTime + duration1).toISOExtendedString() );
    // 引き算
    writeln( (currentTime - duration2).toUTC().toISOExtendedString() );
    // 足し算と引き算をいっぺんに。
    writeln( (currentTime + duration1 - duration2 + duration3).toISOExtendedString() );
}
Page Top

実行結果 anchor.png Edit

1
2
3
4
$ dmd -run main
2011-02-20T11:14:02.639
2011-02-20T02:08:45.517976Z
2011-05-15T11:13:57.517976

Page Top

投票とコメント anchor.png Edit

Choices Vote
大変参考になった0  
参考になった0  
あまり参考にならなかった0  
まったく参考にならなかった0  

No comment. コメント​/SampleCodes​/Phobos​/時間操作​/2Edit

Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 1519, today: 1, yesterday: 0
Princeps date: 2011-02-20 (Sun) 11:12:28
Last-modified: 2011-02-20 (Sun) 11:12:28 (JST) (3987d) by SHOO
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu