HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0919
vine昨日の日付を取得するには6解決


vine

リンク

2009/9/19(Sat) 01:10:14|NO.27766

現在の日時は

yy=gettime(0) mm=gettime(1):if (mm <= 9) { mm = "0"+mm } dd=gettime(3):if (dd <= 9) { dd = "0"+dd } nowtime = ""+yy+mm+dd mes nowtime stop
ですが、「昨日の日付」を求めたい場合
どうすればよいでしょうか。よろしくお願いします。



この記事に返信する


足利超神

リンク

2009/9/19(Sat) 01:32:16|NO.27767


yy=gettime(0) mm=gettime(1):if (mm <= 9) { mm = "0"+mm } dd=gettime(3):if (dd <= 9) { dd = "0"+dd } nowtime = ""+yy+mm+(dd-1) mes nowtime stop
・・・コレじゃダメですか?
見当違いだったらスイマセン。



SYAM

リンク

2009/9/19(Sat) 04:34:38|NO.27770

日付から1引いて、
もし0になったら月が4,6,9,11なら30、1,3,5,7,8,10,12なら31、2なら年によって28か29にして、月から1引いて、
もし月が0になったら年から1引いて、月を12にして・・・



vine

リンク

2009/9/19(Sat) 06:26:41|NO.27771

>足利超神さん
>SYAMさん
ご返信ありがとうございます。
参考に組んでみます。



vine

リンク

2009/9/19(Sat) 07:38:34|NO.27772


yy=gettime(0) mm=gettime(1):if (mm <= 9) { mm = "0"+mm } dd=gettime(3):if (dd <= 9) { dd = "0"+dd } dd=dd-1 if (dd=="0") { if (mm="2") { ff=fmod(yy, 4) //ただし、西暦年が100で割り切れる年は平年。 if (ff=="0") {dd="29"}else{dd="28"} } if ((mm="4")||(mm="6")||(mm="9")||(mm="11")) {dd="30"} if ((mm="1")||(mm="3")||(mm="5")||(mm="7")||(mm="8")||(mm="10")||(mm="12")) {dd="31"} } nowtime = ""+yy+mm+dd mes nowtime stop



SYAM

リンク

2009/9/19(Sat) 09:32:35|NO.27773

2桁目の 0 埋めは最後にやらないといけません。

それと、この書き方では4行目以降、 mm や dd が 日付や時刻によって文字型だったり数値型だったりしてしまいます。
何か機能追加したときにわかりにくいバグの原因になってしまいますので、途中で型を変えないようにするか、少なくとも分岐によって型が違ったりしないようにしましょう。

また、0埋めするなら strf()関数が便利です。
yy,mm,ddをすべて数値型として、

nowtime = ""+strf("%04d",yy)+strf("%02d",mm)+strf("%02d",dd)
…のように書くと、年月日をそれぞれ4桁、2桁、2桁の文字列にして繋いだものになります。



ANTARES

リンク

2009/9/19(Sat) 22:18:53|NO.27794

>//ただし、西暦年が100で割り切れる年は平年。
 ただし、西暦年が400で割り切れる年は閏年。



ONION software Copyright 1997-2023(c) All rights reserved.