Difference between revisions of "UuLinuxTime"
Jump to navigation
Jump to search
Kaluura Boa (talk | contribs) (Created page with "{{LSL Header|User-Defined Functions|Kaluura's User Page}} <!-- please do not remove added links --> {{void-box |titl…") |
m (tags) |
||
(3 intermediate revisions by one other user not shown) | |||
Line 12: | Line 12: | ||
* ''sec'': seconds | * ''sec'': seconds | ||
This function was converted to LSL from Linux kernel's | (This function was converted to LSL from Linux kernel's sources: /usr/src/*/kernel/time.c) | ||
It excepts a date/time in UTC. ([[http://en.wikipedia.org/wiki/Coordinated_Universal_Time Coordinated Universal Time]]) | It excepts a date/time in UTC. ([[http://en.wikipedia.org/wiki/Coordinated_Universal_Time Coordinated Universal Time]]) | ||
* PST = UTC - 8 hours | * PST = UTC - 8 hours | ||
* PDT = UTC - 7 hours | * PDT = UTC - 7 hours | ||
< | <source lang="lsl2">// Contributed Freely to the Public Domain without limitation. | ||
// 2011 (CC0) [ http://creativecommons.org/publicdomain/zero/1.0 ] | // 2011 (CC0) [ http://creativecommons.org/publicdomain/zero/1.0 ] | ||
// Kaluura Boa [ https://wiki.secondlife.com/wiki/User:Kaluura_Boa ] | // Kaluura Boa [ https://wiki.secondlife.com/wiki/User:Kaluura_Boa ] | ||
Line 38: | Line 39: | ||
{ | { | ||
llOwnerSay("1970-01-01 00:00:00 --> " + (string)uuLinuxTime(1970, 1, 1, 0, 0, 0)); | llOwnerSay("1970-01-01 00:00:00 --> " + (string)uuLinuxTime(1970, 1, 1, 0, 0, 0)); | ||
llOwnerSay("2005-03-18 | llOwnerSay("2005-03-18 01:58:31 --> " + (string)uuLinuxTime(2005, 3, 18, 1, 58, 31)); | ||
llOwnerSay("2009-02-13 23:31:30 --> " + (string)uuLinuxTime(2009, 2, 13, 23, 31, 30)); | llOwnerSay("2009-02-13 23:31:30 --> " + (string)uuLinuxTime(2009, 2, 13, 23, 31, 30)); | ||
llOwnerSay("2038-01-19 03:14:07 --> " + (string)uuLinuxTime(2038, 1, 19, 3, 14, 7)); | llOwnerSay("2038-01-19 03:14:07 --> " + (string)uuLinuxTime(2038, 1, 19, 3, 14, 7)); | ||
Line 44: | Line 45: | ||
} | } | ||
} | } | ||
</ | </source> | ||
}} | }} | ||
Latest revision as of 17:27, 31 July 2015
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials | User-Defined Functions | Kaluura's User Page |
User-Defined Function: integer uuLinuxTime( integer year, integer mon, integer day, integer hour, integer min, integer sec );
Returns an integer that is the Unix time code representing the input date
- year
- mon: month
- day
- hour: hours (0 to 23)
- min: minutes
- sec: seconds
(This function was converted to LSL from Linux kernel's sources: /usr/src/*/kernel/time.c)
It excepts a date/time in UTC. ([Coordinated Universal Time])
- PST = UTC - 8 hours
- PDT = UTC - 7 hours
// Contributed Freely to the Public Domain without limitation.
// 2011 (CC0) [ http://creativecommons.org/publicdomain/zero/1.0 ]
// Kaluura Boa [ https://wiki.secondlife.com/wiki/User:Kaluura_Boa ]
//
integer uuLinuxTime(integer year, integer mon, integer day, integer hour, integer min, integer sec)
{
mon -= 2;
if (mon <= 0)
{
mon += 12;
--year;
}
return ((((year/4 - year/100 + year/400 + (367*mon)/12 + day) + year*365 - 719499)*24
+ hour)*60 + min)*60 + sec;
}
default
{
state_entry()
{
llOwnerSay("1970-01-01 00:00:00 --> " + (string)uuLinuxTime(1970, 1, 1, 0, 0, 0));
llOwnerSay("2005-03-18 01:58:31 --> " + (string)uuLinuxTime(2005, 3, 18, 1, 58, 31));
llOwnerSay("2009-02-13 23:31:30 --> " + (string)uuLinuxTime(2009, 2, 13, 23, 31, 30));
llOwnerSay("2038-01-19 03:14:07 --> " + (string)uuLinuxTime(2038, 1, 19, 3, 14, 7));
}
}
Notes
- This function does not check if the input values are valid.
- Valid dates are from 1970-01-01 00:00:00 to 2038-01-19 03:14:07.
- Beyond this date, the returned value will be negative since LSL integers are always signed.
- It will also restart to zero for any date beyond 2106-02-07 06:28:15.