Difference between revisions of "TimeAgo"
Jump to navigation
Jump to search
Kireji Haiku (talk | contribs) m (some minor readability changes) |
Kireji Haiku (talk | contribs) m (damn typo) |
||
Line 7: | Line 7: | ||
|func_footnote= | |func_footnote= | ||
See also: [[llGetUnixTime]] | See also: [[llGetUnixTime]] | ||
|examples=<lsl>//Created by Ugleh Ulrik | |examples= | ||
<lsl> | |||
//Created by Ugleh Ulrik | |||
string TimeAgo(integer time) | string TimeAgo(integer time) | ||
Line 15: | Line 17: | ||
integer timeDifference = now - time; | integer timeDifference = now - time; | ||
// small bug fix for when | // small bug fix for when timeDifference is 0 | ||
if (timeDifference == 0) | if (timeDifference == 0) | ||
return "just now"; | return "just now"; | ||
Line 28: | Line 30: | ||
"decade"]; | "decade"]; | ||
//the number equivalent to | //the number equivalent to periods | ||
list lenghts = [1, | list lenghts = [1, | ||
60, | 60, | ||
Line 46: | Line 48: | ||
string output = llList2String(periods, v); | string output = llList2String(periods, v); | ||
//this will get the correct time in | //this will get the correct time in periods, then divide the timeDifference | ||
integer ntime = timeDifference / llList2Integer(lenghts, llListFindList(periods, [output])); | integer ntime = timeDifference / llList2Integer(lenghts, llListFindList(periods, [output])); | ||
Revision as of 11:23, 30 September 2012
LSL Portal | Functions | Events | Types | Operators | Constants | Flow Control | Script Library | Categorized Library | Tutorials |
Summary
Function: string TimeAgo( integer tm );Returns a string that will give you the difference in time.
• integer | tm | – | Unix Time used for difference |
See also: llGetUnixTime
Examples
<lsl> //Created by Ugleh Ulrik
string TimeAgo(integer time) {
// time difference in seconds integer now = llGetUnixTime(); integer timeDifference = now - time;
// small bug fix for when timeDifference is 0 if (timeDifference == 0) return "just now";
list periods = ["second", "minute", "hour", "day", "week", "month", "year", "decade"];
//the number equivalent to periods list lenghts = [1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600];
integer v = llGetListLength(lenghts) - 1; integer no;
while((0 <= v) && (no = timeDifference/llList2Integer(lenghts, v) <= 1)) --v;
string output = llList2String(periods, v);
//this will get the correct time in periods, then divide the timeDifference integer ntime = timeDifference / llList2Integer(lenghts, llListFindList(periods, [output]));
//if integer 'no' is not equal to 1 then it should have an s at the end if(no != 1) output += "s";
//This produces the finished output output = (string)ntime + " "+ output + " ago"; return output;
}
default {
touch_start(integer total_number) { integer now = llGetUnixTime(); integer time = now - 180;
// integer time is the current unix time minus 180 seconds (3 minutes) // the outcome will be "3 minutes ago"
llSay(PUBLIC_CHANNEL, TimeAgo(time)); }
}
</lsl>