ソラマメブログ
< 2025年05月 >
S M T W T F S
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

2007年11月21日

日本標準時表示スクリプト(リンデンスクリプト Tips)

 JST(日本標準時)を表示するスクリプトです。
YYYY-MM-DD hh:mm:ssフォーマットでJSTを表示します。
いままで時刻計算は、関数にお任せしてたので、自分でつくると閏年とかあって
ちょっと面倒w。

日本標準時表示スクリプト(リンデンスクリプト Tips)
<スクリプト内容>

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 No.42 標準時間表示スクリプト 

リンデンスクリプト Tips Intexへ





同じカテゴリー(リンデンスクリプトTips)の記事画像
サウンド再生スクリプト(リンデンスクリプト Tips)
カメラコントロール(リンデンスクリプト Tips)
標準時間表示スクリプト(リンデンスクリプト Tips)
プリムカウンター2(リンデンスクリプト Tips)
土地情報チェッカー(リンデンスクリプト Tips)
SIM負荷チェッカー(リンデンスクリプト Tips)
同じカテゴリー(リンデンスクリプトTips)の記事
 サウンド再生スクリプト(リンデンスクリプト Tips) (2009-12-16 20:13)
 カメラコントロール(リンデンスクリプト Tips) (2009-11-21 21:26)
 標準時間表示スクリプト(リンデンスクリプト Tips) (2009-11-02 00:34)
 プリムカウンター2(リンデンスクリプト Tips) (2009-10-12 20:40)
 土地情報チェッカー(リンデンスクリプト Tips) (2009-10-11 21:33)
 SIM負荷チェッカー(リンデンスクリプト Tips) (2009-08-09 20:26)
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。