Time and Date Functions
De DigiWiki.
This is a list of useful functions for retrieving information about the current Time & Date.
See the comments above each function for usage.
//////////////////////////////////////////////////////////////////////////// // GarrMe Dagger's Time & Date Functions v.10.13.07 // // Copyright (c) 2007 Mark Timlin // //////////////////////////////////////////////////////////////////////////// // // // This program is free software: you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // // the Free Software Foundation version 3 of the License. // // // // This program is distributed in the hope that it will be useful, // // but WITHOUT ANY WARRANTY; without even the implied warranty of // // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // // General Public License for more details - http://www.gnu.org/licenses // // // //////////////////////////////////////////////////////////////////////////// // Returns the current millisecond. integer TimeMillisecond() { list time = llParseString2List(llGetTimestamp(), ["."], []); llOwnerSay(llGetTimestamp()); return (integer)llGetSubString(llList2String(time, 1), 0, 1); } // Returns the current seconds. integer TimeSecond() { list time = llParseString2List(llGetTimestamp(), ["T",":","Z"], []); return llList2Integer(time, 3); } // Returns the current minutes. integer TimeMinute() { list time = llParseString2List(llGetTimestamp(), ["T",":","Z"], []); return llList2Integer(time, 2); } // Returns the current hour (in military time). integer TimeHour() { list time = llParseString2List(llGetTimestamp(), ["T",":","Z"], []); return llList2Integer(time, 1); } // Returns the time for a specific hour, minute, and second in the format HH:MM:SS AM/PM. string TimeSerial(integer hour, integer minute, integer second) { string AMPM = "AM"; string min = (string)minute; string sec = (string)second; if (hour > 12) { AMPM = "PM"; hour -= 12; } if (minute < 10) min = "0" + min; if (second < 10) sec = "0" + sec; return (string)hour + ":" + min + ":" + sec + " " + AMPM; } // Returns the current day. integer DateDay() { list time = llParseString2List(llGetTimestamp(), ["-", "T"], []); return (integer)llList2Float(time, 2); } // Returns the current month. integer DateMonth() { list time = llParseString2List(llGetTimestamp(), ["-", "T"], []); return (integer)llList2Float(time, 1); } // Returns the current year. integer DateYear() { list time = llParseString2List(llGetTimestamp(), ["-", "T"], []); return (integer)llList2Float(time, 0); } // Returns the name of a specified month. If abbreviate is TRUE only the 1st 3 letters of // the month will be returned. string DateMonthName(integer month, integer abbreviate) { list name = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "November", "December"]; string str = llGetSubString(llList2String(name, month - 1), 0, -1); if (abbreviate) str = llGetSubString(str, 0, 2); return str; } // Returns the name of the day of the week for a given date. If abbreviate is TRUE // only the 1st 3 letters of the day will be returned. // * Uses Christian Zeller's congruence algorithm to calculate the day of the week. string DateDayName(integer month, integer day, integer year, integer abbreviate) { list name = ["Saturday", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]; if (month < 3) { month += 12; year -= 1; } integer index = (day + 2*month + (3*(month + 1))/5 + year + year/4 - year/100 + year/400 + 2) % 7; string str = llGetSubString(llList2String(name, index), 0, -1); if (abbreviate) str = llGetSubString(str, 0, 2); return str; } default { state_entry() { // Example usage of these functions llOwnerSay("Today is: " + DateDayName(DateMonth(), DateDay(), DateYear(), FALSE) + " " + DateMonthName(DateMonth(), FALSE) + " " + (string)DateDay() + ", " + (string)DateYear() + " and the time is: " + TimeSerial(TimeHour(), TimeMinute(), TimeSecond())); } }