LlGetGMTclock/ja: Difference between revisions
Jump to navigation
Jump to search
Mako Nozaki (talk | contribs) m Undo revision 851282 by Mako Nozaki (Talk) |
Mako Nozaki (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
{{LSL_Function/ja | {{LSL_Function/ja | ||
|func_id=282|func_sleep=0.0|func_energy=10.0 | |func_id=282|func_sleep=0.0|func_energy=10.0 | ||
|func=llGetGMTclock | |func=llGetGMTclock | ||
|func_footnote= | |func_footnote=SL 時間、カリフォルニア時間と同じ時間を取得するには、{{LSLG/ja|llGetWallclock}} を使用します。 | ||
|func_desc | |func_desc=GMT の午前零時からの経過時間を秒数で返します。値は秒に切り捨てられているようです。 | ||
|spec | |spec | ||
|caveats | |caveats | ||
Line 11: | Line 9: | ||
|examples= | |examples= | ||
<lsl> | <lsl> | ||
//--// GMT | //--// ローカルオフセットを 12 時間表記で表示する GMT 関数 //--// | ||
integer gIntMinute = 60; //-- 1 | integer gIntMinute = 60; //-- 1 分の秒表記 | ||
integer gIntHour = 3600; //-- 1 | integer gIntHour = 3600; //-- 1 時間の秒表記 | ||
integer gInt12Hr = 43200; //-- | integer gInt12Hr = 43200; //-- 12 時間の秒表記 | ||
integer gIntDay = 86400; //-- 1 | integer gIntDay = 86400; //-- 1 日の秒表記 | ||
string fStrGMTwOffset( integer vIntLocalOffset ){ | string fStrGMTwOffset( integer vIntLocalOffset ){ | ||
//-- | //-- 指定されたオフセットの正確な時間をミリ秒で取得します | ||
integer vIntBaseTime = ((integer)llGetGMTclock() + gIntDay + vIntLocalOffset * gIntHour) % gIntDay; | integer vIntBaseTime = ((integer)llGetGMTclock() + gIntDay + vIntLocalOffset * gIntHour) % gIntDay; | ||
string vStrReturn; | string vStrReturn; | ||
//-- | //-- 朝か夜かを書く雄牛、必要であれば 12 時間の表記にします | ||
if (vIntBaseTime < gInt12Hr){ | if (vIntBaseTime < gInt12Hr){ | ||
vStrReturn = " AM"; | vStrReturn = " AM"; | ||
Line 31: | Line 29: | ||
} | } | ||
//-- | //-- フォーマットされた分表記を取得します | ||
integer vIntMinutes = (vIntBaseTime % gIntHour) / gIntMinute; | integer vIntMinutes = (vIntBaseTime % gIntHour) / gIntMinute; | ||
vStrReturn = (string)vIntMinutes + vStrReturn; | vStrReturn = (string)vIntMinutes + vStrReturn; | ||
Line 38: | Line 36: | ||
} | } | ||
//-- | //-- 正確な時間を足します。0 は 12 にします | ||
if (vIntBaseTime < gIntHour){ | if (vIntBaseTime < gIntHour){ | ||
vStrReturn = "12:" + vStrReturn; | vStrReturn = "12:" + vStrReturn; | ||
Line 49: | Line 47: | ||
default{ | default{ | ||
touch_start( integer vIntTouched ){ | touch_start( integer vIntTouched ){ | ||
//-- '-8' | //-- '-8' はカリフォルニア時間で、DST の補正は含まれていません | ||
llSay( 0, "The time is now " + fStrGMTwOffset( -8 ) ); | llSay( 0, "The time is now " + fStrGMTwOffset( -8 ) ); | ||
} | } | ||
Line 55: | Line 53: | ||
</lsl> | </lsl> | ||
<lsl> | <lsl> | ||
// | // UTC の午前零時からのミリ秒を取得します | ||
integer GetGMTmsclock() | integer GetGMTmsclock() | ||
{ | { | ||
Line 67: | Line 65: | ||
|helpers | |helpers | ||
|also_functions= | |also_functions= | ||
{{LSL DefineRow|| | {{LSL DefineRow||{{LSLG/ja|llGetWallclock}}|PST の午前零時からの秒数}} | ||
|also_events | |also_events | ||
|also_tests | |also_tests |
Revision as of 07:36, 3 May 2010
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llGetGMTclock( );GMT の午前零時からの経過時間を秒数で返します。値は秒に切り捨てられているようです。
SL 時間、カリフォルニア時間と同じ時間を取得するには、llGetWallclock を使用します。
サンプル
<lsl> //--// ローカルオフセットを 12 時間表記で表示する GMT 関数 //--//
integer gIntMinute = 60; //-- 1 分の秒表記 integer gIntHour = 3600; //-- 1 時間の秒表記 integer gInt12Hr = 43200; //-- 12 時間の秒表記 integer gIntDay = 86400; //-- 1 日の秒表記
string fStrGMTwOffset( integer vIntLocalOffset ){
//-- 指定されたオフセットの正確な時間をミリ秒で取得します integer vIntBaseTime = ((integer)llGetGMTclock() + gIntDay + vIntLocalOffset * gIntHour) % gIntDay; string vStrReturn; //-- 朝か夜かを書く雄牛、必要であれば 12 時間の表記にします if (vIntBaseTime < gInt12Hr){ vStrReturn = " AM"; }else{ vStrReturn = " PM"; vIntBaseTime = vIntBaseTime % gInt12Hr; } //-- フォーマットされた分表記を取得します integer vIntMinutes = (vIntBaseTime % gIntHour) / gIntMinute; vStrReturn = (string)vIntMinutes + vStrReturn; if (10 > vIntMinutes){ vStrReturn = "0" + vStrReturn; } //-- 正確な時間を足します。0 は 12 にします if (vIntBaseTime < gIntHour){ vStrReturn = "12:" + vStrReturn; }else{ vStrReturn = (string)(vIntBaseTime / gIntHour) + ":" + vStrReturn; } return vStrReturn;
}
default{
touch_start( integer vIntTouched ){ //-- '-8' はカリフォルニア時間で、DST の補正は含まれていません llSay( 0, "The time is now " + fStrGMTwOffset( -8 ) ); }
} </lsl> <lsl> // UTC の午前零時からのミリ秒を取得します integer GetGMTmsclock() {
string stamp = llGetTimestamp(); return (integer) llGetSubString(stamp, 11, 12) * 3600000 + (integer) llGetSubString(stamp, 14, 15) * 60000 + llRound((float) llGetSubString(stamp, 17, -2) * 1000.0);
}
</lsl>関連項目
関数
• | llGetWallclock | – | PST の午前零時からの秒数 |
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。