User:Zag McMillan/sl time timestamp
Jump to navigation
Jump to search
A quite ugly but working function to return a timestamp based on current time in SL. Works similar as llGetTimestamp(), but returns a string based on current time inworld rather than UTC.
<lsl>
string msGetTimestamp()
{ integer slsekunden=(integer)llGetWallclock(); integer gmtsekunden=(integer)llGetGMTclock(); integer differenz=gmtsekunden-slsekunden; differenz=differenz/3600; integer tag=(integer)llGetSubString(llGetTimestamp(),8,9); integer monat=(integer)llGetSubString(llGetTimestamp(),5,6); integer jahr=(integer)llGetSubString(llGetTimestamp(),0,3); integer stunde=(integer)llGetSubString(llGetTimestamp(),11,12); integer minute=(integer)llGetSubString(llGetTimestamp(),14,15); stunde=stunde-differenz; if (stunde<0) { stunde=24-stunde; tag--; if (tag==0) { monat--; if (monat==1) tag=31; if (monat==2) tag=28; if (monat==3) tag=31; if (monat==4) tag=30; if (monat==5) tag=31; if (monat==6) tag=30; if (monat==7) tag=31; if (monat==8) tag=31; if (monat==9) tag=30; if (monat==10) tag=31; if (monat==11) tag=30; if (monat==0) tag=31; if(monat==0) { monat=12; jahr--; } } } string ts=(string)tag; string ms=(string)monat; string ss=(string)stunde; string ns=(string)minute; if (llStringLength(ts)<2) ts="0"+ts; if (llStringLength(ms)<2) ms="0"+ms; if (llStringLength(ss)<2) ss="0"+ss; if (llStringLength(ns)<2) ns="0"+ns; return((string)jahr+"-"+ms+"-"+ts+"T"+ss+":"+ns+":"+llGetSubString(llGetTimestamp(),17,-1)); }
default {
state_entry() { llSay(0, "Hello, Avatar!"); }
touch_start(integer total_number) { llSay(0,msGetTimestamp()); }
}
</lsl>