Countdown Script

Date 2009/5/28 4:22:02 | Topic: Time

Set the date and time and script will count down. Displays in real time Float Text.

// ENTER YOUR DATE TO COUNTDOWN TO
integer aYear 2012;
integer aMonth 12// 1 through 12
integer aDay 21// 1 through 31
integer aHour 12// 12 is noon
integer aMinute 0// 0 through 59
integer aSecond 0// 0 through 59
integer aGMToffset = -8// -8 for the SL clock
integer DST TRUE// TRUE or FALSE depending on daylight savings time.
// END SETTINGS


// BEGIN SCRIPT
integer expires;

integer MakeUNIXTimeinteger yearinteger monthinteger dayinteger hourinteger minuteinteger secondinteger GMToffsetinteger DST ) {
    list 
month_days = [ 0315990120151181212243273304334 ];    
    
integer time = ( year 1970 ) * 31536000;
    
time += ( day llList2Integermonth_daysmonth ) - ) * 86400;
    
time += ( hour GMToffset ) * 3600 minute 60 second;
    if ( 
DST == TRUE ) {
        
time += -3600;
    }
    if ( 
year 1972 ) {
        
integer past_leap_years = (integer)( ( year 1969 ) / );
        
time += past_leap_years 86400;
    }
    if ( 
year == && month ) {
        
time += 86400;
    }
    return 
time;
}

default 
{
    
on_rezinteger sparam )
    {
        
llResetScript();
    }
    
    
state_entry() 
    {
        
expires MakeUNIXTimeaYearaMonthaDayaHouraMinuteaSecondaGMToffsetDST );
        
llSetTimerEvent1.0 );
    }
    
timer() 
    {
        
integer seconds expires llGetUnixTime();
        if( 
seconds 
        {
            
integer days seconds 86400;
            
integer hours = ( seconds - ( days 86400 ) ) / 3600;
            
integer minutes = ( seconds - ( days 86400 ) - ( hours 3600 ) ) / 60;
            
seconds = ( seconds - ( days 86400 ) - ( hours 3600 ) - ( minutes 60 ) );
            
string s1 " Days, ";
            if( 
days == 
            {
                
s1 " Day, ";
            }
            
string s2 " Hours, & ";
            if ( 
hours == 
            {
                
s2 " Hour, ";
            }
            
string s3 " Minutes ";
            if ( 
minutes == 
            {
                
s3 " minute, ";
            }
            
string s4 " seconds ";
            if ( 
seconds == 
            {
                
s4 " second ";
            }
            
llSetText( (string)days s1 + (string)hours s2 + (string)minutes s3 "Left", <1.0,1.0,1.0>, 1.0 ); //no seconds version
            //llSetText( (string)days + s1 + (string)hours + s2 + (string)minutes + s3 + (string)seconds + s4 + "Left", <1.0,1.0,1.0>, 1.0 ); //with seconds
        
}
        else 
        {
            
state expired;
        }
    }
}

state expired 
{
    
on_rezinteger sparam )
    {
        
llResetScript();
    }
    
    
state_entry() 
    {
        
llSetText" ", <1.0,1.0,1.0>, 1.0 );
    }
}




This script comes from Alicia Stella Design - Best Tip Jars in Second Life
http://www.aliciastella.com

The URL for this script is:
http://www.aliciastella.com/modules/AMS/article.php?storyid=26