Difference between revisions of "LlGetWallclock"

From Second Life Wiki
Jump to navigation Jump to search
(EX)
m (Oops.. fixing extra 'default' state that I pasted.)
 
(18 intermediate revisions by 11 users not shown)
Line 4: Line 4:
|func_footnote=For GMT use [[llGetGMTclock]]
|func_footnote=For GMT use [[llGetGMTclock]]
|func_desc
|func_desc
|return_text=that is the time in seconds since midnight PST.
|return_text=that is the time in seconds since midnight Pacific time (PST/PDT), truncated to whole seconds. That is the same as the time of day in SLT expressed as seconds.
|spec
|spec
|caveats
|caveats
|constants
|constants
|examples=<pre>
|examples=<source lang="lsl2">// Real World Sun
// Sun  
integer Flag;
 
default
default
{
{
     state_entry()
     state_entry()
     {
     {
        Flag = -1;
         llSetTimerEvent(0.1);
         llSetTimerEvent(0.1);
     }
     }
Line 19: Line 21:
     timer()
     timer()
     {
     {
         if(llGetWallclock() < 43200)
        float time = llGetWallclock();
             llSetText("The Sun is comming! :)", <1,1,0>, 1.0);
         if (Flag == -1)
         else
        {
            llSetTimerEvent(60.0);
        }
        if (time < 21600)
        {
            if (Flag)
             {
                llSetText("The Sun is coming! :)", <1,1,0>, 1.0);
                Flag = 0;
            }
        }
         else if (time < 64800)
        {
            if (Flag != 1)
            {
                llSetText("Sun has risen. :(", <1,0,0>, 1.0);
                Flag = 1;
            }
        }
        else if (Flag != 2)
        {
             llSetText("Goodbye Sun. :(", <1,0,0>, 1.0);
             llSetText("Goodbye Sun. :(", <1,0,0>, 1.0);
              
             Flag = 2;
         llSetTimerEvent(10);
         }
    }
}</source>
 
<source lang="lsl2">// Convert to human-readable HH:MM:SS format
string ConvertWallclockToTime()
{
    integer now = (integer)llGetWallclock();
    integer seconds = now % 60;
    integer minutes = (now / 60) % 60;
    integer hours = now / 3600;
    return llGetSubString("0" + (string)hours, -2, -1) + ":"
        + llGetSubString("0" + (string)minutes, -2, -1) + ":"
        + llGetSubString("0" + (string)seconds, -2, -1);
}
 
default
{
    touch_start(integer total_number)
    {
        llSay(0, ConvertWallclockToTime());
    }
}
</source>
 
<source lang="lsl2">// Convert to human-readable 12-hour HH:MM:SS (AM/PM) format
string ConvertWallclockToTime()
{
    integer now = (integer)llGetWallclock();
    integer seconds = now % 60;
    integer minutes = (now / 60) % 60;
    integer hours = now / 3600;
 
    return llGetSubString("0" + (string)(hours % 12), -2, -1) + ":"
          + llGetSubString("0" + (string)minutes, -2, -1) + ":"
          + llGetSubString("0" + (string)seconds, -2, -1) + " "
          + llList2String(["AM", "PM"], (hours > hours % 12));
}
 
default
{
    touch_start(integer total_number)
    {
        llSay(0, ConvertWallclockToTime());
     }
     }
}
}
</pre>
</source>
 
 
|helpers
|helpers
|also_functions=
|also_functions=
Line 34: Line 101:
|also_tests
|also_tests
|also_articles
|also_articles
|notes
|notes=To determine if the current time returned by this function is PST or PDT, you can look at the difference between llGetGMTclock() and llGetWallclock(). The difference will be either 8 hours or -16 hours for PST, and 7 hours or -17 hours for PDT, that is 28800 or -57600,  or 25200 or -61200 seconds.
|permission
|permission
|negative_index
|negative_index

Latest revision as of 07:34, 6 September 2023

Summary

Function: float llGetWallclock( );
0.0 Forced Delay
10.0 Energy

Returns a float that is the time in seconds since midnight Pacific time (PST/PDT), truncated to whole seconds. That is the same as the time of day in SLT expressed as seconds.

For GMT use llGetGMTclock

Examples

// Real World Sun
integer Flag;

default
{
    state_entry()
    {
        Flag = -1;
        llSetTimerEvent(0.1);
    }
    
    timer()
    {
        float time = llGetWallclock();
        if (Flag == -1)
        {
            llSetTimerEvent(60.0);
        }
        if (time < 21600)
        {
            if (Flag)
            {
                llSetText("The Sun is coming! :)", <1,1,0>, 1.0);
                Flag = 0;
            }
        }
        else if (time < 64800)
        {
            if (Flag != 1)
            {
                llSetText("Sun has risen. :(", <1,0,0>, 1.0);
                Flag = 1;
            }
        }
        else if (Flag != 2)
        {
            llSetText("Goodbye Sun. :(", <1,0,0>, 1.0);
            Flag = 2;
        }
    }
}
// Convert to human-readable HH:MM:SS format
string ConvertWallclockToTime()
{
    integer now = (integer)llGetWallclock();
    integer seconds = now % 60;
    integer minutes = (now / 60) % 60;
    integer hours = now / 3600;
    return llGetSubString("0" + (string)hours, -2, -1) + ":" 
        + llGetSubString("0" + (string)minutes, -2, -1) + ":" 
        + llGetSubString("0" + (string)seconds, -2, -1);
}

default
{
    touch_start(integer total_number)
    {
        llSay(0, ConvertWallclockToTime());
    }
}
// Convert to human-readable 12-hour HH:MM:SS (AM/PM) format
string ConvertWallclockToTime()
{
    integer now = (integer)llGetWallclock();
    integer seconds = now % 60;
    integer minutes = (now / 60) % 60;
    integer hours = now / 3600;

    return llGetSubString("0" + (string)(hours % 12), -2, -1) + ":" 
           + llGetSubString("0" + (string)minutes, -2, -1) + ":"
           + llGetSubString("0" + (string)seconds, -2, -1) + " "
           + llList2String(["AM", "PM"], (hours > hours % 12));
}

default
{
    touch_start(integer total_number)
    {
        llSay(0, ConvertWallclockToTime());
    }
}

Notes

To determine if the current time returned by this function is PST or PDT, you can look at the difference between llGetGMTclock() and llGetWallclock(). The difference will be either 8 hours or -16 hours for PST, and 7 hours or -17 hours for PDT, that is 28800 or -57600, or 25200 or -61200 seconds.

See Also

Functions

•  llGetGMTclock Seconds since midnight GMT

Deep Notes

Signature

function float llGetWallclock();