JScript.NET  新JavaScript入門  JavaScript,Neo-Generation  DOM  WSH  掲示板  表紙
Written 1/9/04
JScript.NET
日時
日時を表すのに.Net Frameworkには DateTime 構造体が用意されています。
これとは別に、日時の差を表すために、TimeSpan 構造体が用意されています。
現在の日時
次のように現在の日時を得ることができます。
    var d : DateTime;
    d = DateTime.Now;
 
指定した日時
年・月・日、または、年〜秒を指定して日時を得ることができます。
    var d2 : DateTime = new DateTime(2004, 1, 8);
    var d3 : DateTime = new DateTime(2004, 1, 8, 18, 30, 5);
 
上は午前0時に設定されます。
日時の表示
得られた日時は次のように色々な形式で表示できます。
    import System;
    
    var d = DateTime.Now;
    print(d.ToLocalTime());           //Fri Jan 9 03:40:56 UTC+9 2004
    print(d.ToLongDateString());      //2004年1月8日
    print(d.ToLongTimeString());      //18:40:56
    print(d.ToOADate());              //37994.77842700231
    print(d.ToShortDateString());     //2004/01/08
    print(d.ToShortTimeString());     //18:40
    print(d.ToString());              //2004/01/08 18:40:56
    print(d.ToUniversalTime());       //Thu Jan 8 09:40:56 UTC+9 2004
 
これで不満な場合もカスタマイズできます。たとえば、
    print(d.ToString("mm:ss"));       //40:56
 
詳しくは、書式(2)
情報を得る
得られた日時の年や時などを整数で得られます。
    print(d.ToString());      //2004/01/08 19:51:18
    print(d.Year);            //2004
    print(d.Month);           //1
    print(d.Day);             //8
    print(d.DayOfWeek);       //Thursday
    print(d.Hour);            //19
    print(d.Minute);          //51
    print(d.Second);          //18
    print(d.Millisecond);     //531
 
DayOfWeekは列挙体を返すため、 表示は上のようになりますが、 実際には日曜0、土曜6の整数になります。
    print(d.DayOfWeek+0);     //4
 
その他に年間積算日というのもあります。
    print(d.DayOfYear);       //8
 
1月だと意味がありませんが。
どうせなら何週目かというのもあればいいのに。
TimeSpan
ある日時からある日時の時間間隔というものをTimeSpanとして得られます。
    import System;
    import System.Threading;
    
    var d0 = DateTime.Now;
    Thread.Sleep(10000);        //10秒待つ
    var d1 = DateTime.Now;
    var t : TimeSpan;
    t = d1.Subtract(d0);        //d0からd1の時間間隔
    print(t.TotalMilliseconds); //10000
 
このようにある時点から何秒経ったかなどがわかります。
他にも、TotalDaysTotalSeconds などのプロパティがあります。
これを日時に足し引きして新しい日時を得られます。
    //上のつづき
    print(d1);       //Fri Jan 9 19:44:06 UTC+9 2004
    var d2 = d1.Add(t);       //10秒足す
    print(d2);       //Fri Jan 9 19:44:16 UTC+9 2004
    var d3 = d1.Subtract(t);  //10秒引く
    print(d3);       //Fri Jan 9 19:43:56 UTC+9 2004
 
TimeSpanを使わなくても、足し引きすべき時間がわかっていれば、 AddDaysAddSeconds などのメソッドを使うこともできます。
    //上のつづき
    var d4 = d1.AddSeconds(-10);  //10秒引く
    print(d4);       //Fri Jan 9 19:43:56 UTC+9 2004
 
演算子
上のようにメソッドを使わずとも演算子で簡単に記述できます。
    //上のつづき
    //演算子を使うには型宣言が必要らしい
    var d5 : DateTime = DateTime.Now;
    var d6 : DateTime = d5 - t;
    var t2 : TimeSpan = d6 - d5;
 
比較演算子も用意されています。
    //上のつづき
    print(d5 > d6);    //true
 
その他のメソッド
適当な文字列を日時と解釈できます。
    var d4 : DateTime = DateTime.Parse("2004/1/9");
 
うるう年かどうか判定するメソッドも用意されています。
    var b : boolean = DateTime.IsLeapYear(2004);
 
引数に年を表す整数を指定します。
JScript.NET exit