Difference between revisions of "Days in Month"
Jump to navigation
Jump to search
m |
m (<lsl> tag to <source>) |
||
(One intermediate revision by one other user not shown) | |||
Line 1: | Line 1: | ||
The following script is adaptable for use in any calender system, particularly pertaining to tier collection systems that need to do actual monthly billings, not just 28 day or 30 day billing cycles. | The following script is adaptable for use in any calender system, particularly pertaining to tier collection systems that need to do actual monthly billings, not just 28 day or 30 day billing cycles. | ||
< | <source lang="lsl2"> | ||
integer GetDaysInMonth(integer month, integer year) | integer GetDaysInMonth(integer month, integer year) | ||
{ | { | ||
Line 7: | Line 7: | ||
return 28 + !(year % 4) - !(year % 100) + !(year % 400); | return 28 + !(year % 4) - !(year % 100) + !(year % 400); | ||
if(month >= 1 && month <= 12) | if(month >= 1 && month <= 12) | ||
return 30 | (month & 1) ^ (month > | return 30 | (month & 1) ^ (month > 7); | ||
return 0; | return 0; | ||
} | } | ||
Line 30: | Line 30: | ||
} | } | ||
} | } | ||
</ | </source> | ||
{{LSLC|Library|Days in Month}} | {{LSLC|Library|Days in Month}} |
Latest revision as of 18:51, 24 January 2015
The following script is adaptable for use in any calender system, particularly pertaining to tier collection systems that need to do actual monthly billings, not just 28 day or 30 day billing cycles.
integer GetDaysInMonth(integer month, integer year)
{
if(month == 2)
return 28 + !(year % 4) - !(year % 100) + !(year % 400);
if(month >= 1 && month <= 12)
return 30 | (month & 1) ^ (month > 7);
return 0;
}
default
{
state_entry()
{
llSay(0, "Touch to confirm the number of days in the current month!");
}
touch_start(integer total_number)
{
string date = llGetDate();
list date_info = llParseString2List(date,["-"],[" "]);
integer year = llList2Integer(date_info,0);
integer month = llList2Integer(date_info,1);
integer day = llList2Integer(date_info,2);
integer days_in_month = GetDaysInMonth(month, year);
llSay(0, (string)days_in_month + " days in this month");
}
}