Difference between revisions of "Talk:Unix2DateTime"

From Second Life Wiki
Jump to: navigation, search
(Suggestions)
m (Compacting)
 
(One intermediate revision by the same user not shown)
Line 17: Line 17:
 
<lsl>
 
<lsl>
 
// This leap year test works for all years from 1901 to 2099 (yes, including 2000)
 
// This leap year test works for all years from 1901 to 2099 (yes, including 2000)
// Which is more than enough for UnixTime computations, and 99% of SL applications
+
// Which is more than enough for UnixTime computations, which only operates over the range [1970, 2038].
 
integer LeapYear( integer year)
 
integer LeapYear( integer year)
 
{
 
{
Line 36: Line 36:
  
 
[[User:Omei Qunhua|Omei Qunhua]] 03:49, 9 December 2013 (PST)
 
[[User:Omei Qunhua|Omei Qunhua]] 03:49, 9 December 2013 (PST)
 +
 +
:I'm ok with everything but LeapYear. I've tweaked the comment so that I'm more ok with it. -- '''[[User:Strife_Onizuka|Strife]]''' <sup><small>([[User talk:Strife_Onizuka|talk]]|[[Special:Contributions/Strife_Onizuka|contribs]])</small></sup> 08:27, 9 December 2013 (PST)

Latest revision as of 09:27, 9 December 2013

Script didn't compile due to this line:
days = DaysPerMonth(mt++);

Changed that line to:
days = DaysPerMonth(year,mt++);
--Huney Jewell 07:20, 20 September 2007 (PDT)

Leap Years

Unix time is usable from 1970 to 2037 ... so why does this script's leap year test include handling for centuries that are not multiples of 400 years? A touch of overkill? Omei Qunhua 16:09, 11 January 2013 (PST)

Compacting

Any objections if I replace 3 user functions with the following compact versions?

<lsl> // This leap year test works for all years from 1901 to 2099 (yes, including 2000) // Which is more than enough for UnixTime computations, which only operates over the range [1970, 2038]. integer LeapYear( integer year) {

   return !(year & 3);

}

integer DaysPerMonth(integer year, integer month) {

   if (month == 2)  	return 28 + LeapYear(year);
   return 30 + ( (month + (month > 7) ) & 1);           // Odd months up to July, and even months after July, have 31 days

}

integer DaysPerYear(integer year) {

   return 365 + LeapYear(year);

} </lsl>

Omei Qunhua 03:49, 9 December 2013 (PST)

I'm ok with everything but LeapYear. I've tweaked the comment so that I'm more ok with it. -- Strife (talk|contribs) 08:27, 9 December 2013 (PST)