3

そのため、ユーティリティの練習として、私たちの貧弱な古い vb .net 1.1 アプリの 1 つを C# .net 4.0 に変換することにしました。

開始点としてテレリック コード変換を使用したところ、最終的に 150 個までのエラーが発生しました (20k 以上のコードを考慮すると、それほど悪くはなく、本番ソースを使用してエラーなしで実行できることはめったにありません)。その多くは時間/日付を処理します。 vb と c# で。

私の質問は、VB で次のステートメントをどのように表現しますか?

If oStruct.AH_DATE <> #1/1/1900# Then

C#で?コンバーターがくれた

            if (oStruct.AH_DATE != 1/1/1900 12:00:00 AM) {

もちろんこれは正しくありませんが、正しくする方法がわかりません。

4

3 に答える 3

3
 if (oStruct.AH_DATE != new DateTime(1900, 1, 1){
于 2012-09-27T01:52:48.267 に答える
2

この構成を試すことができます:

if ( DateTime.Compare(oStruct.AH_DATE, new DateTime(1900, 1, 1)) == 0 )
{
// your code here
}

.NET で DateTimes を比較する方法のリファレンスを次に示します - DateTime.Compare メソッド

注:整数のように 2 つの日付を比較すると、間違った結果になる可能性があります。.NET の日時構造には固有のプロパティがあるためです。DateTime.Compare2 つの日付を比較するときは常に注意を払い、より安全な側にいることを常に選択します。

于 2012-09-27T01:58:55.387 に答える
1

これはうまくいくはずです:

if (oStruct.AH_DATE != DateTime.Parse("1/1/1900"))
于 2012-09-27T16:01:44.240 に答える