許せない心理テスト

いつもお世話になります。

VB6.0で時間の計算方法でつまっています。
足し算はDataAdd関数でよさそうですが・・・


皆様のお知恵をお貸し下さい。

A 回答 (4件)

※基準の時間から、何日後など・・・


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

この回答への補足

ご回答ありがとうございます。

なるほど・・・そうやるんですね~
では早速応用で割り算を!
・・・
・・・?
やってみたんですがDate型は23:59までですよね・・・
うう・・・

どうしたら・・・Time型なのでしょうか?

補足日時:2002/10/22 16:15
    • good
    • 0

・・・ですから・・・



時間の累計は、すでに時間ではないのです。
ちまたに見る合計時間というのは、合計した数値を、表示形式でごまかしているのです。

時間の累計はLong型や文字型などで保持する方がいいのです。


32:42:15という時間は存在しません。分りますでしょうか?
それにTime型はありません。

累計や差分などの算出された数値は、全て分(あるいは秒)で値を保持するなり、変数の型を考え直した方がいいと思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2002/10/23 10:49


掛け算・割り算に関しては、ないですね。
日時に対して行うような計算とも思えないです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

うーん60進の掛け算割り算っておかしいんでしょうか?

あんまりいい例えじゃないですが、
例えば:一日に3時間20分働いて、月に20日働いたからお手当てはいくら。
って計算ってしないでしょうか?

日数分For分でまわしてDateAddする方法しかないでしょうか?(:_;)

お礼日時:2002/10/22 10:49

引き算なら、DateAdd関数の2番目の引数をマイナスにしておけば、計算されます。



例)1ヶ月前
DateAdd("m", -1, Now)
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます~

はっ!目からウロコ・・・<-1

掛け算とか割り算する関数もあるんでしょうか?
よろしければお教え下さい~

お礼日時:2002/10/22 09:48

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


おすすめ情報