CodeSOD: ハンガリーでのデート ノート

CodeSOD: ハンガリーでのデート

著者は、コードにおけるハンガリアン記法に強い不満を表明しています。その誤用と不適切な日付処理の例を挙げています。特定のコードスニペットでは、隠しフィールド Hdn_SelectedDate から初期化された変数 sCDate2 が使用されています。プレフィックス s は文字列を示唆していますが、変数は日付を保持しており、CDate2 という接尾辞は説明されていません。別の隠しフィールド Hdn_SelectedShifts は、10.5 が 10:30 を表す倍精度浮動小数点数として時間を格納しています。この値はその後 DateTime.FromOADate を使用して操作されます。著者は、OLE オートメーションの歴史と、1899 年 12 月 30 日からのオフセットというその特異な日付表現について掘り下げています。このシステムは、1900 年がうるう年として扱われた Excel のバグを引き継いでいます。コードはその後、時間を表す倍精度浮動小数点数を OADate に変換し、時間を抽出し、それを日付文字列と結合します。著者は、C# の AddHours メソッドがより簡単な解決策であっただろうと指摘しています。さらに、時間データは、より一般的な形式ではなく、ドロップダウンのために手動で浮動小数点数としてエンコードされていました。この複雑なプロセスは、著者のハンガリアン記法に対する一般的な嫌悪感を強化しています。