“LlGetGMTclock”的版本间的差异
(创建页面,内容为“123r2”) |
|||
| (未显示同一用户的1个中间版本) | |||
| 第1行: | 第1行: | ||
| − | + | {{LSL Header|ml=*}}{{LSLC|Keywords}}{{LSLC|Flow Control}}{{LSLC|}} | |
| + | |||
| + | |||
| + | {{函数详情 | ||
| + | |函数名 = Function: float llGetGMTclock( ) | ||
| + | |参数= 参数: | ||
| + | |返回值= 返回值:返回一个浮点数,以秒为单位表示从格林尼治时间午夜开始的时间。值似乎被截断为秒。 | ||
| + | |||
| + | |注意事项= | ||
| + | 注意事项 | ||
| + | |||
| + | |||
| + | |示例= | ||
| + | <pre> | ||
| + | //--// 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 fStrGMTwOffset( 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 ) ); | ||
| + | } | ||
| + | } | ||
| + | </pre> | ||
| + | <pre> | ||
| + | // 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); | ||
| + | } | ||
| + | </pre> | ||
| + | |||
| + | |相关函数= | ||
| + | [[llGetWallclock]]–从午夜SLT(即PST或PDT)开始的秒数 | ||
| + | |||
| + | |相关事件= | ||
| + | |||
| + | |||
| + | }} | ||
2021年1月25日 (一) 07:53的最新版本
| 首页 | 函数 | 事件 | 类型 | 操作符 | 常数 | Flow Control | Script Library | Categorized Library | Tutorials |
| 函数名 |
|---|
| Function: float llGetGMTclock( ) |
| 参数: |
| 返回值:返回一个浮点数,以秒为单位表示从格林尼治时间午夜开始的时间。值似乎被截断为秒。 |
| 注意事项 |
|---|
| 注意事项 |
| 示例 |
|---|
//--// 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 fStrGMTwOffset( 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 ) );
}
}
// 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);
}
|
| 相关函数 |
|---|
| llGetWallclock–从午夜SLT(即PST或PDT)开始的秒数 |
| 相关事件 |
|---|