HSPモジュール:日時計算したい
こんにちは。かなで です。
今回はHSP(ホットスーププロセッサ)のモジュールを一つ公開したいと思います。
もともと、仕事でちょっとしたことをするときにHSPを使っているのですが、
「昨日の日付から明日の日付」とか「9時間前から今まで」という日時指定をしたいことが稀によくあります。
それを楽に出来る「まともな」モジュールがなかったので、「適当な」モジュールを作ってみました。
上記をダウンロード、解凍して、includeして使ってください。(ファイルをアップロードする際、ファイル名にハッシュ値を使うようにしちゃったので、ファイル名が「f234ed7ea6661d4c15db8f1b0ca90a5f.zip」となってます。すいません)
記入コマンド
timecalc outtime,"-00/03","now" ;今から3日前の日付をouttimeに格納
timecalc outtime,"13:00","now" ;今から13時間後の日付をouttimeに格納
timecalc outtime,"-09:00","15:00" ;15時の9時間前の時間をouttimeに格納
記入例
#include "timecalc.hsp"
timecalc outtime,"-00/03","2001/04/05 06:07:08"
mes outtime ; "2001/04/02 06:07:08と表示されればOK
timecalc outtime,"03:00","2001/04/05 06:07:08"
mes outtime ; "2001/04/05 09:07:08と表示されればOK
stop
入力形式
;prm1 結果を代入する変数
; prm3で指定したフォーマットになる。
;prm2 変動させたい日時(過去なら頭にマイナス)
; フォーマットは以下から選択。
; "mm/dd hh:mm:ss"
; "mm/dd hh:mm"
; "mm/dd"
; "hh:mm:ss"
; "hh:mm"
;prm3 基準日時
; NOW/Now/nowを指定時は現在日時になる。
; フォーマットは以下から選択。
; "yyyy/mm/dd hh:mm:ss"
; "yyyy/mm/dd hh:mm"
; "yyyy/mm/dd"
; "hh:mm:ss"
; "hh:mm"
; "now"
注意点
①ちょっとでもおかしな値を入れるとstat=1でエラーとなります。
②1日後 は出来るけど 24時間後 は出来ない
同様に、1分40秒後 は出来るけど 100秒後 は出来ない
③モジュール内を見ればわかりますが、特殊な事をしてるわけじゃなくて、力技で計算しているだけです。
また、例外処理はほとんど入れてないので、変な挙動をすることがあります。
あまり痛めつけずに、ちょっとした用途で使っていただけると幸いです。
うまく動くと思われる→昨日の日付を知りたい。今から9時間後を知りたい。
うまく動かない→100日前は?10000時間後は?みたいな。
④仕事用に作ったものですので、仕事で困らない限り、恐らく機能拡張(まともなモジュールに)はしないと思います。
予めご了承ください。timecalc.zip