2004年10月28日

DateTimePickre の Value プロパティ

  
DateTimePickre の Value プロパティって、日付/時刻が設定されているんですね。てっきり、時刻は、00:00:00 が設定されていると思っていました。
ちょっと、調べてみたのですが、DateTimePickerのFormat プロパティが Long の場合(他の値では調べていません)には、日付を選んだ時の時刻が入るわけではなさそうです。かといって、DateTimePickerが生成された時刻が入るわけでもないし、ちょっと不思議です。
DateTimePcikerを生成し、何もしないときに、Value プロパティを参照すると、Valueプロパティを参照した時刻が設定されるようです。参照するたびに時刻が変っていきます。しかし、一度、DateTimePicker をマウスで操作し、日付を変更すると、時刻は変らなくなります。そんな変な動きをさせずに、時刻は常に 00:00:00 にしてくれれば良いのにね。
でも、これって、Win32API側の仕様? それとも .NET Framework の仕様? どっちなんでしょう。いずれにせよ、日付の比較や日数差を求める場合にバグが入り込む危険がありますから、
DateTime dt = dateTimePicker1.Value.Date;
のように、日付だけを持って来るコーディングをした方がよさそうです。


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/8602037