AからBまでの残り時間を計算したいのですが
Time関数を使ったのですが、日付がまたぐ場合 年月日まで表示されてしまい
23時間とかの残り時間になってしまいます。
単純に時間を計算するコードはないのでしょうか?
年月日まで含めたDate型の変数を使用して
DateDiff関数を用いるとか
ぜんぜんわからないので
ソースのヒントをください
過去ログ検索『DateDiff』かヘルプでも使用例のサンプルはありますが。
…ご存知ないですか?
みましたがさっぱりでした。
やりたいことは、指定時刻までのカウントダウンなのですが、
TIMEを監視してカウントダウンをしたいのです。
例えば23:00〜23:30で30分のカウントダウンを開始して
カウント追加ボタン(30分)がありそれをカウントダウン5分前に押すと
残りが35分になり35分からカウントダウンを開始されるようなプログラムをつくりたいのです。A時間からB時間までのカウントダウンを作りたいのです。
>カウント追加ボタン(30分)がありそれをカウントダウン5分前に押すと
現在の時間を取得し、算出して、30分足すというのはどうでしょうか?
VB.NETなら
現在の時間はNowで取得できたと思います。
Dim b as string=Now
その後で、分のみを出す。
Minute(b)
もし、時間を全て分にしたいならば・・・
Hour(b)*60+Minute(b)+Second(b)/60
とすれば出来ると思います。
Dateadd関数を使って 秒数化して時間を抜き出すことは成功したのですが
その抜き出したものから 29:59 29:58とカウントダウンさせていくほうほうがわかりません。
できればTimeの時間を参照して TIMEの時間が1秒増えると30:00が29:59と
減っていくものをつくりたいのです。
ちなみVB6です。
最終的に表示したい形式は hh:mm:ssです。
[VB6.0]
Private Sub Command1_Click()
Dim wTimeCount As Date
wTimeCount = TimeSerial(1, 59, 30)
MsgBox wTimeCount
MsgBox DateAdd("s", -1, wTimeCount)
End Sub
各引数の値が -32,768 〜 32,767 の範囲なら以下も通ります。
超えるとエラーになります。詳しくはヘルプに書いてあります。
[VB6.0]
Private Sub Command1_Click()
Dim wTimeCount As Date
wTimeCount = TimeSerial(0, 0, 1800)
MsgBox wTimeCount
MsgBox DateAdd("s", -1, wTimeCount)
End Sub
もっとわかりやすくいえば 24時を過ぎて 午前1時になったときに
午前一時の認識を25時、26時 27時、28時として認識させたいのです。
2日間はまたぐことがないのでいいとおもうのですが。・・・
>もっとわかりやすくいえば 24時を過ぎて 午前1時になったときに
>午前一時の認識を25時、26時 27時、28時として認識させたいのです。
認識させればいいんじゃないですか?(^^;)
2日でも3日でも…
[VB6.0]
Private Sub Command1_Click()
Dim wTimeCount As Date
wTimeCount = DateSerial(2004, 1, 1) + TimeSerial(28, 0, 1800)
MsgBox wTimeCount
MsgBox DateAdd("s", -1, wTimeCount)
End Sub
過去ログ検索『TimeSerial』で
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200403/04030041.txt
とか見れば
>Dim Ntime as Date
>Ntime=Time + TimeSerial(1, 0, 0)
とかいうサンプルもあるし、ヘルプと合わせて調べれば
初心者でも自分ひとりでできるレベルだと思ったんですが…。
Dim dtTm1 As Date
Dim dtTm2 As Date
dtTm1 = Now
dtTm2 = DateAdd("n", 30, dtTm1)
Do While DateDiff("s", dtTm2, Now) < 0
Debug.Print TimeSerial(0, 0, -DateDiff("s", dtTm2, Now))
DoEvents
Loop
何日またいでも同じですね。
編集 削除用はお店用カウントダウンタイマーがつくりたかったのですが、
A現在時刻
Bセット開始時間
Cセット終了時間
D残り時間
スタートボタンを押したときにBはスタートボタン押した時の時刻を表示
Cはセット終了時間 例えば30分後を表示
Dは00:30:00からカウントダウン開始
コマンドボタン2(延長ボタン)を押した際にBは現在のCを取得表時
Cは取得したCになってるBの30分後を表示
Dは仮に 00:04:48だった場合 00:34:48を表示
時間によって、監視、時間とともにカウントダウンが減るを作りたかったのです。
もう一息で完成できそうです。
C-Bを引いた時間 +Cの残りを足した状態でのカウントダウンがしたかったのでした。
編集 削除ここまで例があるのですからあとはご自分で考えてくださいね。
編集 削除