COMを利用した、日付を扱うモジュールです。
指定した日の曜日を算出する関数と、指定した2つの日の差(日数)を算出する関数を含んでいます。
日数算出は「あと何日あるか」を算出するので、このサンプルプログラムのように「全部で何日か」を計算する場合は1を足す必要があります。/*
日付を扱うライブラリになりそうなもの。
※ 注意!パラメータチェック&エラーチェック処理未実装!
参考:http://tsu.sakura.ne.jp/article/note/eid512.html
*/
#module
// ミリ秒を日に変換
#define ctype cnvMsec2Day(%1) int((%1)/86400000) // 86400000 = 1000*60*60*24
// javascript数式の計算
#defcfunc jsEval str jsExp
if vartype(mssc) != vartype("comobj") {
newcom mssc, "MSScriptControl.ScriptControl"
comres result
mssc("Language") = "JScript"
}
mssc -> "Eval" jsExp
return result
// 曜日を返す(0~6)
#defcfunc getDayOf int y, int m, int d
return int(jsEval("(new Date(" + y + "," + (m - 1) + "," + d + ")).getDay();"))
// 時間差を日数で返す
#defcfunc getSub int y1, int m1, int d1, int y2, int m2, int d2
return cnvMsec2Day(jsEval("Date.UTC(" + y2 + "," + (m2 - 1) + "," + d2 + ") - Date.UTC(" + y1 + "," + (m1 - 1) + "," + d1 + ");"))
#global
// モジュールここまで
day = "日", "月", "火", "水", "木", "金", "土"
mes "今年は" + (1 + getSub( gettime(0), 1, 1, gettime(0), 12, 31 )) + "日間です"
mes "今日は" + day( getDayOf( gettime(0), gettime(1), gettime(3) ) ) + "曜日です"
stop
2008年3月1日土曜日
日数計算・曜日計算
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿