Skip to content

duk_components_to_time()

2.0.0 time

プロトタイプ

c
duk_double_t duk_components_to_time(duk_context *ctx, duk_time_components *comp);

スタック

(バリュースタックに影響なし。)

要約

UTCで解釈される構成要素(年、月、日、など)を時間値に変換します。comp->weekday 引数は変換の際に無視されます。構成要素の値が無効な場合、エラーが投げられます。

ECMAScriptのDate.UTC()組み込みと若干の違いがあります。

2桁の年号を特別に扱うことはありません。例えば、Date.UTC(99, 0, 1)は1999-01-01として解釈されます。comp->time が 99 の場合、99 年と解釈されます。 ミリ秒成分は分数(サブミリ秒の分解能)が許され、結果として得られる時刻の値に分数を持たせることができます。 ECMAScript のプリミティブと同様に、成分はその自然な範囲を超えることができ、正規化されます。例えば、comp->minutesを120と指定すると、時間値に2時間追加されると解釈されます。成分はIEEE doublesで表現され、大きな値や負の値を使用できるようにします。

c
duk_time_components comp;
duk_double_t time;

memset((void *) &comp, 0, sizeof(comp));  /* good practice even if fully initialized */
comp.year = 2016;
comp.month = 0;  /* 0-based, 1=January */
comp.day = 2;    /* 1-based: second of January */
comp.hours = 3;
comp.minutes = 4;
comp.seconds = 5;
comp.milliseconds = 6.0;  /* allows sub-millisecond resolution */
comp.weekday = 0;  /* ignored */

time = duk_components_to_time(ctx, &comp);
printf("2016-01-02 03:04:05.006Z -> %lf\n", (double) time);

参照

duk_time_to_components