ソラマメブログ
< 2008年12>
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      
アクセスカウンタ
オーナーへメッセージ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。 解除は→こちら
現在の読者数 4人

2007年11月21日

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


 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へ



この記事へのトラックバックURL