LlGetGMTclock/ja: Difference between revisions

From Second Life Wiki
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|return_type=float
|func=llGetGMTclock
|func_footnote=SL時間はカリフォルニア時間と同じため、[[llGetWallclock/ja|llGetWallclock]]を使います。
|func_footnote=SL 時間、カリフォルニア時間と同じ時間を取得するには、{{LSLG/ja|llGetWallclock}} を使用します。
|func_desc
|func_desc=GMT の午前零時からの経過時間を秒数で返します。値は秒に切り捨てられているようです。
|return_text_jaOptionAfter=ミリ秒で正確に表します。
|return_text=GMT午前0時から経過した秒数
|spec
|spec
|caveats
|caveats
Line 11: Line 9:
|examples=
|examples=
<lsl>
<lsl>
//--// GMT function with local offsets in 12hr format //--//
//--// ローカルオフセットを 12 時間表記で表示する GMT 関数 //--//
   
   
integer gIntMinute = 60;    //-- 1 minute in seconds
integer gIntMinute = 60;    //-- 1 分の秒表記
integer gIntHour  = 3600;  //-- 1 hour in seconds
integer gIntHour  = 3600;  //-- 1 時間の秒表記
integer gInt12Hr  = 43200; //-- 12hrs in seconds
integer gInt12Hr  = 43200; //-- 12 時間の秒表記
integer gIntDay    = 86400; //-- 1 day in seconds
integer gIntDay    = 86400; //-- 1 日の秒表記
   
   
string fStrGMTwOffset( integer vIntLocalOffset ){
string fStrGMTwOffset( integer vIntLocalOffset ){
   //-- get the correct time in seconds for the given offset
   //-- 指定されたオフセットの正確な時間をミリ秒で取得します
   integer vIntBaseTime = ((integer)llGetGMTclock() + gIntDay + vIntLocalOffset * gIntHour) % gIntDay;
   integer vIntBaseTime = ((integer)llGetGMTclock() + gIntDay + vIntLocalOffset * gIntHour) % gIntDay;
   string vStrReturn;
   string vStrReturn;
   
   
   //-- store morning or night and reduce to 12hour format if needed
   //-- 朝か夜かを書く雄牛、必要であれば 12 時間の表記にします
   if (vIntBaseTime < gInt12Hr){
   if (vIntBaseTime < gInt12Hr){
     vStrReturn = " AM";
     vStrReturn = " AM";
Line 31: Line 29:
   }
   }
   
   
   //-- get and format minutes
   //-- フォーマットされた分表記を取得します
   integer vIntMinutes = (vIntBaseTime % gIntHour) / gIntMinute;
   integer vIntMinutes = (vIntBaseTime % gIntHour) / gIntMinute;
   vStrReturn = (string)vIntMinutes + vStrReturn;
   vStrReturn = (string)vIntMinutes + vStrReturn;
Line 38: Line 36:
   }
   }
   
   
   //-- add in the correct hour, force 0 to 12
   //-- 正確な時間を足します。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' is california time, no adjustment for DST
     //-- '-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>
// Gets the number of milliseconds since midnight UTC.
// UTC の午前零時からのミリ秒を取得します
integer GetGMTmsclock()
integer GetGMTmsclock()
{
{
Line 67: Line 65:
|helpers
|helpers
|also_functions=
|also_functions=
{{LSL DefineRow||[[llGetWallclock/ja|llGetWallclock]]|PST午前0時からの経過秒数}}
{{LSL DefineRow||{{LSLG/ja|llGetWallclock}}|PST の午前零時からの秒数}}
|also_events
|also_events
|also_tests
|also_tests

Revision as of 07:36, 3 May 2010

要約

関数: 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 の午前零時からの秒数

特記事項

Search JIRA for related Issues

Signature

function void llGetGMTclock();
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。