D 1.0   D 2.0
About Japanese Translation

Last update Thu Sep 16 11:25:57 2010

std.date

Jump to: Date DosFileTime UTCtoLocalTime UTCtoString benchmark d_time d_time_nan date dateFromTime day dayFromYear daysInMonth daysInYear getUTCtime hour hourFromTime inLeapYear localTimetoUTC minFromTime minute month monthFromTime ms msFromTime parse secFromTime second ticksPerSecond toDateString toDosFileTime toDtime toISO8601YearWeek toString toTimeString toUTCString tzcorrection weekDay weekday year yearFromTime

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

Source:
std/date.d References:
Gregorian calendar (Wikipedia) License:
Boost License 1.0

Authors:
Walter Bright

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

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

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 hourFromTime(d_time time);
time の hour(時) を計算します。

Parameters:
d_time time hour を計算したい time

Returns:
0 から 23 の値

int minFromTime(d_time time);
time の minute(分) を計算します。

Parameters:
d_time time minute を計算したい time

Returns:
0 から 59 の値

int secFromTime(d_time time);
time の second(秒) を計算します。

Parameters:
d_time time second を計算したい time

Returns:
0 から 59 の値

int msFromTime(d_time time);
time の milisecond(ミリ秒) を計算します。

Parameters:
d_time time millisecond を計算したい time

Returns:
0 から 999 の値

uint daysInYear(uint year);
指定の年 year の日数を返します。

閏年なら366、その他の年は365を返します。

Parameters:
uint year 日数を計算したい年

Returns:
365 か 366

int dayFromYear(int year);
1970年1月1日から、 指定の年の1月1日までの日数を計算して返します。

Parameters:
int year 経過日数を計算したい年

Returns:
日数

Example:
 writeln(dayFromYear(1970)); // '0' を表示
 writeln(dayFromYear(1971)); // '365' を表示
 writeln(dayFromYear(1972)); // '730' を表示

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

bool 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
int 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 UTCtoString(d_time time);
UTC の 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.UTCtoString(lNow);


deprecated alias toString;
UTCtoString の別名 (非推奨)

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形式のファイル日時へ変換します。

ulong[] benchmark(fun...)(uint times, uint[] result = null);
スピードの評価の比較のためのコードのベンチマークを行います

Parameters:
fun 呼び出し可能オブジェクトへのエイリアス(関数名など)の列。 引数無しで呼び出し可能なオブジェクトを指定します。
times それぞれの関数を実行する回数
result 返値を格納するオプショナルな領域。null が指定された場合は適切に新しい領域が確保されます。

Returns:
n 個の uinti 番目のスロットには i番目の関数を times 回実行するのにかかった時間がミリ秒単位で格納されます。

Example:
int a;
void f0() { }
void f1() { auto b = a; }
void f2() { auto b = to!(string)(a); }
auto r = benchmark!(f0, f1, f2)(10_000_000);