• ベストアンサー

カウントダウン(のみ)がうまくできません。。。初歩的だと思います。

VB.NETです time_count_up = time_count_up + 1 '経過時間   (+1秒) time_count_down = time_count_down - 1 '残り時間(-1秒) tim_count_h = Format(Int(time_count_up / 3600), "00") tim_count_m = Format(Int((time_count_up - (Val(tim_count_h) * 3600)) / 60), "00") tim_count_s = Format(Int(time_count_up Mod 60), "00") time_up.Text = tim_count_h & "時間" & tim_count_m & "分" & tim_count_s & "秒" '経過時間 tim_count_h2 = Format(Int(time_count_down / 3600), "00") tim_count_m2 = Format(Int((time_count_down - (Val(tim_count_h2) * 3600)) / 60), "00") tim_count_s2 = Format(Int(time_count_down Mod 60), "00") time_down.Text = tim_count_h2 & "時間" & tim_count_m2 & "分" & tim_count_s2 & "秒" '残り時間 -------------------------- time_count_up time_count_down はint64 その他はstring ちなみに time_up.text=time_count_up time_down.text=time_count_down にしてもカウントダウンのみうまくできませんでした。 カウントUPは動いているのですが・・・。 なにが問題なんでしょうか? time_count_down がマイナスや0ということはないと思います。 ためしにフォーム ロードで 60を入れても「00時間00分59秒」と表示されて、動きません。

質問者が選んだベストアンサー

  • ベストアンサー
  • momoturbo
  • ベストアンサー率55% (49/88)
回答No.3

VB6で作ってみました。 ちゃんとカウントダウンします。 >time_count_down2=time_count_down >とするとできました >いったいなぜなんでしょうか? time_count_down どこかで↑変数を使ってませんか? 以下VB6 Option Explicit Public time_count_up As Long '経過時間   (+1秒) Public time_count_down As Long '残り時間(-1秒) Private Sub Form_Load() time_count_up = 60 time_count_down = 60 Timer1.Interval = 1000 End Sub Private Sub Timer1_Timer() Dim tim_count_h As String Dim tim_count_m As String Dim tim_count_s As String Dim tim_count_h2 As String Dim tim_count_m2 As String Dim tim_count_s2 As String time_count_up = time_count_up + 1 '経過時間   (+1秒) time_count_down = time_count_down - 1 '残り時間(-1秒) tim_count_h = Format(Int(time_count_up / 3600), "00") tim_count_m = Format(Int((time_count_up - (Val(tim_count_h) * 3600)) / 60), "00") tim_count_s = Format(Int(time_count_up Mod 60), "00") time_up.Text = tim_count_h & "時間" & tim_count_m & "分" & tim_count_s & "秒" '経過時間 tim_count_h2 = Format(Int(time_count_down / 3600), "00") tim_count_m2 = Format(Int((time_count_down - (Val(tim_count_h2) * 3600)) / 60), "00") tim_count_s2 = Format(Int(time_count_down Mod 60), "00") time_down.Text = tim_count_h2 & "時間" & tim_count_m2 & "分" & tim_count_s2 & "秒" '残り時間 End Sub

lucky_123
質問者

補足

time_count_down どこかで↑変数を使ってませんか? つかっていないです。 アドバイス等ありがとうございます。

その他の回答 (2)

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

time_up.text time_down.text でtime_down.textに問題があるように思われます。 time_down.textは問題ないですか?

lucky_123
質問者

補足

Public time_count_up As Int64 '経過時間 Public time_count_down As Int64 '残り時間 とモジュールに入れています Dim time_count_down2 As Int64  と宣言し、ロード時に time_count_down2=time_count_down とするとできました いったいなぜなんでしょうか?

  • furupun
  • ベストアンサー率15% (4/26)
回答No.1

ちょっと気になったんですが、 1秒待っている部分はどこでしょうか? (VBぜんぜん知らないんで・・VBって、まわさなくてもOK?) 例えば、 count_down=100; loop { count_down=count_down-1;  count_down 表示; wait 1秒; <<コレ }

lucky_123
質問者

補足

タイマーです。 1秒(1000ミリ秒)おきにまわるはずです。 アドバイス等ありがとうございます。

関連するQ&A