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

解決


たけ  2004-06-20 19:05:21  No: 84120

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

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


魔界の仮面弁士  2004-06-20 22:09:32  No: 84121

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-21 01:50:06  No: 84122

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

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


魔界の仮面弁士  2004-06-21 07:31:19  No: 84123

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


たけ  2004-06-22 07:39:59  No: 84124

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加