VB.Netで日付変換するには?

解決


たけ  2004-06-20 10:05:21  No: 84120  IP: [192.*.*.*]

はじめまして、たけと申します。
VB.Net2002で、日付の変換をしたいと思っています。
VBでは、CDate関数を使って変換できるのですが、
VB.Netでは、変換時にエラーが出てしまいます。
VBから.Netへアップグレードして確認してみたのですが、
アップグレードしたコードを実行するとエラーが出てしまうので
どうしたらいいのか困っています。
ご存知の方がおられましたらご教授ください。

変換したい値:38158
S="38158"
VBでは、  CDate(S) → 2004/06/20
.Netでは、CDate(S) → エラー

編集 削除
魔界の仮面弁士  2004-06-20 13:09:32  No: 84121  IP: [192.*.*.*]

VB6の日付型は、西暦100年1月1日〜西暦9999年1月1日。
.NETは西暦1年1月1日〜西暦9999年12月31日なので、
単純変換はできません。

> 変換したい値:38158
> S="38158"
> VBでは、  CDate(S) → 2004/06/20
> .Netでは、CDate(S) → エラー
VB6に合わせるのであれば、
  Dim V As Double = 38158.0#
  Dim D As Date = #12/30/1899#.AddDays(V)
という感じですかね。

編集 削除
たけ  2004-06-20 16:50:06  No: 84122  IP: [192.*.*.*]

魔界の仮面弁士さん、早速のご回答有難う御座います。
早速試したところ、変換できました。
有難う御座いました。

> VB6に合わせるのであれば、
.Netでは、別の方法があるということでしょうか?

編集 削除
魔界の仮面弁士  2004-06-20 22:31:19  No: 84123  IP: [192.*.*.*]

FromOADate/ToOADateメソッドの方が適切ですね。

編集 削除
たけ  2004-06-21 22:39:59  No: 84124  IP: [192.*.*.*]

> FromOADate/ToOADateメソッドの方が適切ですね。
こちらの方が、スマートですね。
大変勉強になりました。
魔界の仮面弁士さん、有難う御座います。

編集 削除