電子書籍の厳選無料作品が豊富!

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秒」と表示されて、動きません。

A 回答 (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

この回答への補足

time_count_down
どこかで↑変数を使ってませんか?
つかっていないです。

アドバイス等ありがとうございます。

補足日時:2004/08/25 18:26
    • good
    • 0

time_up.text


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

この回答への補足

Public time_count_up As Int64 '経過時間
Public time_count_down As Int64 '残り時間

とモジュールに入れています

Dim time_count_down2 As Int64 
と宣言し、ロード時に
time_count_down2=time_count_down
とするとできました

いったいなぜなんでしょうか?

補足日時:2004/08/24 23:54
    • good
    • 0

ちょっと気になったんですが、


1秒待っている部分はどこでしょうか?
(VBぜんぜん知らないんで・・VBって、まわさなくてもOK?)

例えば、
count_down=100;
loop {
count_down=count_down-1;
 count_down 表示;
wait 1秒; <<コレ
}

この回答への補足

タイマーです。
1秒(1000ミリ秒)おきにまわるはずです。


アドバイス等ありがとうございます。

補足日時:2004/08/24 21:32
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!