• ベストアンサー

VB6.0で時間の計算方法

いつもお世話になります。 VB6.0で時間の計算方法でつまっています。 足し算はDataAdd関数でよさそうですが・・・ 皆様のお知恵をお貸し下さい。

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.3

※基準の時間から、何日後など・・・ Date型を使用します ※時間の累計 これは時間というより、数値の足し算です。 一度Long型の変数にセットした方が、いいと思います。 Dim datKijunTime As Date Dim lngKijunTime As Long Dim strWk As String '元の型が書いてないので 'とりあえずDate型でデータが存在していると仮定 datKijunTime = "3:20" '--これより本番--- 'Long型の変数に分でセット lngKijunTime = Hour(datKijunTime) * 60 + Minute(datKijunTime) '20倍 lngKijunTime = lngKijunTime * 20 '結果出力 strWk = lngKijunTime & "分" & vbCrLf & vbCrLf strWk = strWk & (lngKijunTime) \ 60 & "時間" & (lngKijunTime) Mod 60 & "時間" MsgBox strWk

ORCA_H
質問者

補足

ご回答ありがとうございます。 なるほど・・・そうやるんですね~ では早速応用で割り算を! ・・・ ・・・? やってみたんですがDate型は23:59までですよね・・・ うう・・・ どうしたら・・・Time型なのでしょうか?

その他の回答 (3)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.4

・・・ですから・・・ 時間の累計は、すでに時間ではないのです。 ちまたに見る合計時間というのは、合計した数値を、表示形式でごまかしているのです。 時間の累計はLong型や文字型などで保持する方がいいのです。 32:42:15という時間は存在しません。分りますでしょうか? それにTime型はありません。 累計や差分などの算出された数値は、全て分(あるいは秒)で値を保持するなり、変数の型を考え直した方がいいと思います。

ORCA_H
質問者

お礼

何度もすみません。 理解しました。 ありがとうございました。

  • Taketoshi
  • ベストアンサー率41% (23/56)
回答No.2

↓ 掛け算・割り算に関しては、ないですね。 日時に対して行うような計算とも思えないです。

ORCA_H
質問者

お礼

ありがとうございます。 うーん60進の掛け算割り算っておかしいんでしょうか? あんまりいい例えじゃないですが、 例えば:一日に3時間20分働いて、月に20日働いたからお手当てはいくら。 って計算ってしないでしょうか? 日数分For分でまわしてDateAddする方法しかないでしょうか?(:_;)

  • Taketoshi
  • ベストアンサー率41% (23/56)
回答No.1

引き算なら、DateAdd関数の2番目の引数をマイナスにしておけば、計算されます。 例)1ヶ月前 DateAdd("m", -1, Now)

ORCA_H
質問者

お礼

早速のご回答ありがとうございます~ はっ!目からウロコ・・・<-1 掛け算とか割り算する関数もあるんでしょうか? よろしければお教え下さい~

関連するQ&A

専門家に質問してみよう