ソラマメブログ

2007年04月27日

経過日数を計算

いろいろやってると、作ったけど使わなかった、なんて処理が出てきます。
何かに使おう…なんて思いつつも今ひとつ使いどころがなかったりするんですよね。
まぁそんなのばっかりだから困り物ですが。

そんな貴重な(?)ボツコレクションから1つ。
"YYYY-MM-DD" 形式の日付から、ある決まった日付(1970-01-01 1600-01-01)からの経過日数を求める関数です。
これを使うと、ある日付からの経過日数を求める事ができます。
※不具合検証中。とりあえず訂正しました。

integer getPastDay(string day){
integer y=(integer)llGetSubString(day,0,3);
integer m=(integer)llGetSubString(day,5,6);
integer d=(integer)llGetSubString(day,8,9);
if(m<=2){
m+=12;
y--;
}
// y-=1970; //base
y-=1600; //base
return (30*m)+(((m+1)*3)/5)+(d - 33) + (365*y)+(y/4)-(y/100)+(y/400);
}

default{
touch_start(integer n){
string day = "2007-01-01";
integer past = getPastDay(llGetDate()) - getPastDay(day);
llOwnerSay("It has passed from "+day+" on the "+(string)past+"th today.");
}
}

工夫すればカウントダウンなどにも使えそうですね。

しかし、blogは勝手に改行が入ったりすのでコード類は載せ辛いな…。

同じカテゴリー(スクリプト)の記事画像
体験版
この頃の過ごし方
LSLでプリムを10m以上移動させる
リセット地方
同じカテゴリー(スクリプト)の記事
 timerイベントとstate移動と私。 (2009-07-14 07:40)
 体験版 (2007-10-20 18:00)
 この頃の過ごし方 (2007-10-01 16:30)
 アクセスカウンタ (2007-06-20 12:00)
 LSLでプリムを10m以上移動させる (2007-05-12 06:57)
 にほんごであそうぼう (2007-05-10 10:22)

Posted by ともねこ at 04:57│Comments(0)スクリプト
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。