DOBON.NET DOBON.NETプログラミング掲示板過去ログ

時間計算

  • 題名: 時間計算
  • 著者: kage
  • 日時: 2004/10/30 12:43:12
  • ID: 7063
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[Windows2000、XP]
分類:[.NET]

kageです。お世話になります。

時間計算について質問させてください。
VB6で、日付と時間を指定して分単位の時間を計算する場合以下のように書いていました。
Dim date1 As Variant, time1 As Variant
Dim date2 As Variant, time2 As Variant
Dim dTime1 As Date, dTime2 As Date

date1 = DateValue("2004/10/30")
time1 = TimeValue("23:31:00")
dTime1 = date1 + time1
date2 = DateValue("2004/10/31")
time2 = TimeValue("00:35:00")
dTime2 = date2 + time2
MsgBox Int((dTime2 - dTime1) * 60 * 24)

これをVB.netで同じように書くとdTimer1の計算でエラーになってしまいます。
かといって、
dTime1 = DateValue("2004/10/30 23:31:00")
と書くと、午前0時となり、時間が無視されます。
dTime1 = TimeValue("2004/10/30 23:31:00")
と書くと、日付が無視されます。
どなたかよろしくお願いします。
  • 題名: Re[1]: 時間計算
  • 著者: 深山
  • 日時: 2004/10/30 14:56:24
  • ID: 7064
  • この記事の返信元:
  • この記事への返信:
  • ツリーを表示
#このプログラムだと計算結果に誤りがあるような(^_^;)<差は 64 分の筈ですよね? Int 関数では端数が切り捨てられてしまいます。
# DateDiff 関数を使われた方がよろしかったのではないかと。


 .NET で文字列から DateTime ( Date は DateTime のエイリアスです ) を得たい、ということであれば DateTime.Parse メソッドを
DateTime の減算をしたい、ということであれば DateTime.Subtract メソッドをお調べください。
# VB 固有となる DateValue / TimeValue 関数については使用したことがないのでよく解りませんが
#ヘルプを見る限り両者共 DateTime を返すようです。日付同士の加算はできないでしょう。
  • 題名: Re[2]: 時間計算
  • 著者: kage
  • 日時: 2004/10/30 15:47:06
  • ID: 7068
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
深山さん、お世話になります。

> #このプログラムだと計算結果に誤りがあるような(^_^;)<差は 64 分の筈ですよね? Int 関数では端数が切り捨てられてしまいます。
> # DateDiff 関数を使われた方がよろしかったのではないかと。

ご指摘、恐れ入ります。

>  .NET で文字列から DateTime ( Date は DateTime のエイリアスです ) を得たい、ということであれば DateTime.Parse メソッドを
> DateTime の減算をしたい、ということであれば DateTime.Subtract メソッドをお調べください。
> # VB 固有となる DateValue / TimeValue 関数については使用したことがないのでよく解りませんが
> #ヘルプを見る限り両者共 DateTime を返すようです。日付同士の加算はできないでしょう。

お陰さまで解決できました。
Dim dTime1 As System.DateTime = System.DateTime.Parse("2004/10/30 23:31:00")
Dim dTime2 As System.DateTime = System.DateTime.Parse("2004/10/31 00:35:00")
MsgBox(DateDiff(DateInterval.Minute, dTime1, dTime2))
ご指摘の通り64になりました。
時間の概念が全く変わっているのにずいぶん戸惑いましたが、これですっきりしました。
ありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板