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 MakeUNIXTime( integer year, integer month, integer day, integer hour, integer minute, integer second, integer GMToffset, integer DST ) { list month_days = [ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 ]; integer time = ( year - 1970 ) * 31536000; time += ( day + llList2Integer( month_days, month - 1 ) - 1 ) * 86400; time += ( hour - GMToffset ) * 3600 + minute * 60 + second; if ( DST == TRUE ) { time += -3600; } if ( year > 1972 ) { integer past_leap_years = (integer)( ( year - 1969 ) / 4 ); time += past_leap_years * 86400; } if ( year % 4 == 0 && month > 2 ) { time += 86400; } return time; } default { on_rez( integer sparam ) { llResetScript(); } state_entry() { expires = MakeUNIXTime( aYear, aMonth, aDay, aHour, aMinute, aSecond, aGMToffset, DST ); llSetTimerEvent( 1.0 ); } timer() { integer seconds = expires - llGetUnixTime(); if( seconds > 0 ) { 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 == 1 ) { s1 = " Day, "; } string s2 = " Hours, & "; if ( hours == 1 ) { s2 = " Hour, "; } string s3 = " Minutes "; if ( minutes == 1 ) { s3 = " minute, "; } string s4 = " seconds "; if ( seconds == 1 ) { 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_rez( integer sparam ) { llResetScript(); } state_entry() { llSetText( " ", <1.0,1.0,1.0>, 1.0 ); } }