OS:XP Pro SP2
VB6.0
SQLServer2005
はじめまして。
VB6で3000秒を00:50:00と表示するにはどのようにすればよろしいでしょうか?
Mod関数を使っていろいろ試したんですけど、うまくいきませんでした。
hh = a / 3600
nn = a Mod 3600
ss = (a Mod 3600) mod 60
見当違いですか?
よろしくお願いします。
はい 見当違いです。
時、分、秒の関係を見直しましょう。
> hh = a / 3600
> nn = a Mod 3600
> ss = (a Mod 3600) mod 60
の方法でやるなら、「\ 演算子」を使って・・・
後、せっかく、VB6なので(24時間未満限定ですが)、
> Format(DateAdd("s", 3000, CDate("00:00:00")), "hh:nn:ss")
とかでも・・・
ご回答ありがとうございます。
a = 3000
hh = a \ 3600
nn = a \ 60
ss = a Mod 60
と表記し、0:50:0となりました。
こちらを00:50:00に変換する方法はありますか?
hh = Format(a \ 3600, "@0")とすると全てに0が足されてしまいました(汗)
>大吉末吉様
求めたいのが、勉強時間の合計でして、
イメージ的に
SUM(DateDiff("s", STARTTIME, ENDTIME)) AS 合計勉強時間
みたいな形にしたいため、24時間以上もありえるかと思います。
STARTTIME、ENDTIME、ともにdatetime型です。
> 24時間以上もありえるかと思います。
なら、
> a = 3000
> hh = a \ 3600
> nn = a \ 60
> ss = a Mod 60
は、間違ってますよ。
#1時間以上(1時間0分1秒=3601)のときどうなります?
> hh = Format(a \ 3600, "@0")とすると全てに0が足されてしまいました(汗)
"@"は「文字列用」、"0"は「数値用」の指定です。共存はできません。
#"@"の方が有効になって"0"は「単なる文字列」と看做され、「文字列の後に"0"をつける」と言う意味になります。
> hh = Format(a \ 3600, "00")
では?
hh = Format(a \ 3600, "00")
nn = Format((a - (hh * 3600)) \ 60, "00")
ss = Format((a - (hh * 3600)) Mod 60, "00")
MsgBox hh & ":" & nn & ":" & ss
一応、上記でうまくいきました。
まだテストが不十分ですが(汗)
大吉末吉様ありがとうございます。
>hh = Format(a \ 3600, "00")
>nn = Format((a - (hh * 3600)) \ 60, "00")
>ss = Format((a - (hh * 3600)) Mod 60, "00")
>一応、上記でうまくいきました
ほんと?
ツイート | ![]() |