Difference between revisions of "Days in Month"

From Second Life Wiki
Jump to navigation Jump to search
(Created page...)
 
Line 1: Line 1:
The following script is adaptable for use in any calendrical 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 calendrical system, particularly pertaining to tier collection systems that need to do actual monthly billings, not just 28 day or 30 day billing cycles.


<lsl>
string date = "";
string date = "";
list date_info;
list date_info;
Line 85: Line 86:
     }
     }
}
}
</lsl>
{{LSLC|Library|Days in Month}}

Revision as of 00:46, 20 October 2008

The following script is adaptable for use in any calendrical system, particularly pertaining to tier collection systems that need to do actual monthly billings, not just 28 day or 30 day billing cycles.

<lsl> string date = ""; list date_info; integer month; integer day; string days; float year; list thirtydays = [4,6,9,11]; list thirtyonedays = [1,3,5,7,8,10,12]; integer index;


dayspeak()

           {
               llSay(0,days);
               index += 1;
           }

thirtytest()

           {
              do
       
                   if (month = llList2Integer(thirtydays,index))
           {
               days = "30";
               dayspeak();
           }
               while (index < 4);
           } 
           

thirtyonetest()

           {
               do
                   if (month = llList2Integer(thirtyonedays,index))
           {
               days = "31";
               dayspeak();
           }
               while (index < 9);
           }
           

leapyeartest()

           {
              if (month = 2)
              {
                if ((integer)year / 4 == TYPE_INTEGER)
               {
                   days = "29";
                   dayspeak();
               }
               else 
               {
                   days = "28";
                   dayspeak();
               }
               }
               else
               {
                   llSay(0,"I'm sorry you are on the wrong planet.");
               }
                   
       }
               

default {

   state_entry()
   {
       llSay(0, "Touch to confirm the number of days in the current month!");
   }
   touch_start(integer total_number)
   {
       date = llGetDate();
       date_info = llParseString2List(date,["-"],[" "]);
       year = llList2Float(date_info,0);
       month = llList2Integer(date_info,1);
       day = llList2Integer(date_info,2);
       integer index = 0;
       thirtytest();
       thirtyonetest();
       leapyeartest();
       
   }

} </lsl>