D 1.0   D 2.0
About Japanese Translation

Last update Fri Dec 12 01:41:54 2008

std.date

日付を表現する形式は幾つかあります。この date では、 その変換の中心となる型 d_time を定め、他のフォーマット へ/から の変換を実装します。 日付はグレゴリオ歴で計算されます。

References:
Gregorian calendar (Wikipedia)

License:
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at Boost License 1.0)

Authors:
Walter Bright



alias d_time;
d_time は1970年1月1日からの経過時間を表す符号付き数です。 負の値は1970年より前を表します。時間の単位は Tick です. Tick はミリ秒か、それより小さい時間間隔です。

普通の算術演算(加算、減算など)は d_time に対して行うことができます。 例えば経過時間を Ticks 単位で得るには、終了時の d_time から開始時の d_time を引けばよいです。

const d_time d_time_nan;
d_timeが有効な時点を表現していないことを示す値です

struct Date;
時刻を構成要素ごとに分解して表現した構造体です

int year;
year の "nan" 値としては int.min を使います

int month;
1..12

int day;
1..31

int hour;
0..23

int minute;
0..59

int second;
0..59

int ms;
0..999

int weekday;
0: 指定なし, 1..7: 日曜..土曜

int tzcorrection;
-1200..1200 のタイムゾーン指定

void parse(string s);
文字列 s[] をパースして Date インスタンスに格納します

TicksPerSecond
この実装で1秒が何Ticksであるかを示す定数。少なくとも1000。

void toISO8601YearWeek(d_time t, out int year, out int week);
t から年と週 [1..53] を計算します。ISO 8601 では、年の最初の週とは、 1月4日を含む週のことです。週の始まりは月曜日とします。

References:
ISO 8601 (Wikipedia)

int YearFromTime(d_time t);
d_time t から年を計算します。

int inLeapYear(d_time t);
d_time t がうるう年かどうかを判定します。

うるう年は、4で割り切れる年のうち、400で割り切れない00で終わる年を 除いたものです。

Returns:
うるう年なら非0

References:
Wikipedia

int MonthFromTime(d_time t);
d_time t から月を計算します。

Returns:
0 から 11 の整数を返します。 0 が一月、11が十二月を表します。

int DateFromTime(d_time t);
d_time t から日を計算します。

Returns:
1 から 31 の整数を返します。

int WeekDay(d_time t);
d_time t から曜日を計算します。

Returns:
0 から 6 の整数を返します。0 が日曜日で、 6 が土曜日を表します。

d_time UTCtoLocalTime(d_time t);
UTCからローカルタイムへ変換します。

d_time LocalTimetoUTC(d_time t);
ローカルタイムからUTCへ変換します。

int DateFromNthWeekdayOfMonth(int year, int month, int weekday, int n);
月の第n weekday曜日という指定から、日 1..31 の値を計算します。

Params:
int year year
int month month, 1..12
int weekday 曜日。0..6 が Sunday..Saturday に対応
int n 1..5 によって、第n weekday曜日を指定します。 また、5 は "月の最後のweekday曜日" も意味します。

Returns:
指定月の第n weekday曜日が 1..31 のいずれの日であるかを返します。

int DaysInMonth(int year, int month);
月の日数を返します。

Params:
int month 1..12

string toString(d_time time);
time を "Www Mmm dd hh:mm:ss GMT+-TZ yyyy" 形式の文字列へ変換します。 例えば "Tue Apr 02 02:04:57 GMT-0800 1996" など。 なお、timeが不正値つまり d_date.nan の時は、 "Invalid date" という文字列が返ります。

Example:
  d_time lNow;
  char[] lNowString;

  // UTCで現在の日時を取得
  lNow = std.date.getUTCtime();
  // 現地時間に変換して表示
  lNowString = std.date.toString(lNow);


string toUTCString(d_time t);
t を "Www, dd Mmm yyyy hh:mm:ss UTC" 形式の文字列へ変換します。 tが不正値の時は、"Invalid date" が返ります。

string toDateString(d_time time);
time の日付部分をを "Www Mmm dd yyyy" 形式の文字列へ変換します。 例えば "Tue Apr 02 1996" など。 なお、timeが不正値の時は、"Invalid date" が返ります。

string toTimeString(d_time time);
time の時刻部分を "hh:mm:ss GMT+-TZ" 形式の文字列へ変換します。 例えば "02:04:57 GMT-0800" など。 なお、timeが不正値の時は、"Invalid date" が返ります。 入力はUTCで指定します。出力はローカル時間になります。

d_time parse(string s);
日時を表した文字列 s を解析し、d_time を返します。 もし文字列が有効な日時を表していなければ、d_time.nan が返ります。

d_time getUTCtime();
現在の時刻をUTCで取得します。

typedef DosFileTime;
DOSファイルの date/time 形式をあらわす型

d_time toDtime(DosFileTime time);
DOS形式のファイル日時からd_timeへ変換します。

DosFileTime toDosFileTime(d_time t);
d_timeからDOS形式のファイル日時へ変換します。