Difference between revisions of "LlGetGMTclock"

From Second Life Wiki
Jump to navigation Jump to search
m
m (added example)
Line 9: Line 9:
|constants
|constants
|examples=
|examples=
<pre>
<lsl>
//--// GMT function with local offsets in 12hr format //--//
 
integer gIntMinute = 60;    //-- 1 minute in seconds
integer gIntHour  = 3600;  //-- 1 hour in seconds
integer gInt12Hr  = 43200; //-- 12hrs in seconds
integer gIntDay    = 86400; //-- 1 day in seconds
 
string fStrGMYwOffset( integer vIntLocalOffset ){
  //-- get the correct time in seconds for the given offset
  integer vIntBaseTime = ((integer)llGetGMTclock() + gIntDay + vIntLocalOffset * gIntHour) % gIntDay;
  string vStrReturn;
 
  //-- store morning or night and reduce to 12hour format if needed
  if (vIntBaseTime < gInt12hr){
    vStrReturn = " AM";
  }else{
    vStrReturn = " PM";
    vIntBaseTime = vIntBaseTime % gInt12hr;
  }
 
  //-- get and format minutes
  integer vIntMinutes = (vIntBaseTime % gIntHour) / gIntMinute;
  vStrReturn = (string)vIntMinutes + vStrReturn;
  if (10 > vIntMinutes){
    vStrReturn = "0" + vStrReturn;
  }
 
  //-- add in the correct hour, force 0 to 12
  if (vIntBaseTime < gIntHour){
    vStrReturn = "12:" + vStrReturn;
  }else{
    vStrReturn = (string)(vIntBaseTime / gIntHour) + ":" + vStrReturn;
  }
  return vStrReturn;
}
 
default{
  touch_start( integer vIntTouched ){
    //-- '-8' is california time, no adjustment for DST
    llSay( 0, "The time is now " + fStrGMTwOffset( -8 ) );
  }
}
</lsl>
<lsl>
// Gets the number of milliseconds since midnight UTC.
// Gets the number of milliseconds since midnight UTC.
integer GetGMTmsclock()
integer GetGMTmsclock()
Line 19: Line 63:
         llRound((float) llGetSubString(stamp, 17, -2) * 1000.0);
         llRound((float) llGetSubString(stamp, 17, -2) * 1000.0);
}
}
</pre>
</lsl>
|helpers
|helpers
|also_functions=
|also_functions=

Revision as of 19:24, 18 February 2008

Summary

Function: float llGetGMTclock( );

Returns a float that is the time in seconds since midnight GMT. Seems to be accurate to the millisecond.

For SL time, which is the same as California time, use llGetWallclock

Examples

<lsl> //--// GMT function with local offsets in 12hr format //--//

integer gIntMinute = 60; //-- 1 minute in seconds integer gIntHour = 3600; //-- 1 hour in seconds integer gInt12Hr = 43200; //-- 12hrs in seconds integer gIntDay = 86400; //-- 1 day in seconds

string fStrGMYwOffset( integer vIntLocalOffset ){

  //-- get the correct time in seconds for the given offset
 integer vIntBaseTime = ((integer)llGetGMTclock() + gIntDay + vIntLocalOffset * gIntHour) % gIntDay;
 string vStrReturn;
  //-- store morning or night and reduce to 12hour format if needed
 if (vIntBaseTime < gInt12hr){
   vStrReturn = " AM";
 }else{
   vStrReturn = " PM";
   vIntBaseTime = vIntBaseTime % gInt12hr;
 }
  //-- get and format minutes
 integer vIntMinutes = (vIntBaseTime % gIntHour) / gIntMinute;
 vStrReturn = (string)vIntMinutes + vStrReturn;
 if (10 > vIntMinutes){
   vStrReturn = "0" + vStrReturn;
 }
  //-- add in the correct hour, force 0 to 12
 if (vIntBaseTime < gIntHour){
   vStrReturn = "12:" + vStrReturn;
 }else{
   vStrReturn = (string)(vIntBaseTime / gIntHour) + ":" + vStrReturn;
 }
 return vStrReturn;

}

default{

 touch_start( integer vIntTouched ){
    //-- '-8' is california time, no adjustment for DST
   llSay( 0, "The time is now " + fStrGMTwOffset( -8 ) );
 }

} </lsl> <lsl> // Gets the number of milliseconds since midnight 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>

See Also

Functions

•  llGetWallclock Seconds since midnight PST

Deep Notes

Search JIRA for related Issues

Signature

function float llGetGMTclock();