JST(日本標準時)を表示するスクリプトです。
YYYY-MM-DD hh:mm:ssフォーマットでJSTを表示します。
いままで時刻計算は、関数にお任せしてたので、自分でつくると閏年とかあって
ちょっと面倒w。
<スクリプト内容>
string getJST () {
string DateUTC = llGetDate();
integer JSThour;
string DateToday = "";
string timeToday = "";
integer year = (integer)llGetSubString(DateUTC, 0, 3);
integer month = (integer)llGetSubString(DateUTC, 5, 6);
integer day = (integer)llGetSubString(DateUTC, 8, 9);
integer now =(integer)llGetGMTclock();
integer GMThour=now / 3600;
integer minute=(now % 3600) / 60;
integer second=now % 60;
if (GMThour>=0 && GMThour<=14) {
JSThour=GMThour+9;
} else {
JSThour=GMThour-15;
if (day == 31) {
if (month == 12) {
year = year + 1;
month = 1;
} else {
month = month + 1;
}
day = 1;
} else if (day==30 && (month == 4 || month == 6 || month == 9 || month == 11)) {
month = month + 1;
day = 1;
} else if (month==2) {
if (!(year%400) || (year%100 && !(year%4))) {
if (day==29) {
month = month + 1;
day = 1;
} else {
day = day+1;
}
} else {
if (day==28) {
month = month + 1;
day = 1;
} else {
day = day+1;
}
}
} else {
day = day+1;
}
}
if(month < 10) {
DateToday = "0";
}
DateToday+=(string)month + "-";
if(day < 10) {
DateToday += "0";
}
DateToday+=(string)day;
if(JSThour < 10) {
timeToday = "0";
}
timeToday+=(string)JSThour + ":";
if(minute < 10) {
timeToday += "0";
}
timeToday+=(string)minute + ":";
if(second < 10) {
timeToday += "0";
}
timeToday+=(string)second;
return (string)year + "-" + DateToday + " " + timeToday;
}
default
{
state_entry()
{
llSetTimerEvent(1.0);
}
on_rez(integer int) {
llResetScript();
}
timer(){
string ms = "JST(Japan Standard Time)\n" + getJST();
llSetText(ms, <0.0, 1.0, 0.0>, 1.0);
}
}
リンデンスクリプト Tips Intexへ