|
▼わん さん:
こんにちは。
>お世話になりついでに時間計算と時間表示について教えて頂きたい
Access(VBA) の日付型に関してなのですがイミディエイトウィンドウ
(コードが表示されている状態で Ctrl + g)で確認してみましょう。
今日の日付がテーブルにあるとすると、その値は
>>>イミディエトウィンドウで「? CDbl(Date)」
「1900/01/01」からの差分である「38572」という数値になっています。
では時間はどうなっているのかとなると、
>>>「? CDbl(Now())」
小数がでてきましたよね。これが時間の部分になっています。
さて、[#3605]日日をまたいだ時の時間の計算の場合は
「PM5時」「AM1時30分」などの値が出てきますが、実際の値を調べてみると
>>>「? CDbl(#17:00#)」「? CDbl(#1:30#)」
と小数が表示されますが、整数部分は「0」になっています。
これは表示されている値は「17:00」ですが、
実際には「1899/12/30 1:30」という値が入っている事になります。
↑の方で「? CDbl(Date)」としましたが、
これも実際には「2005/08/08 00:00:00」という値ですね。
過去ログの方では「日付を持たない時間」を対象としているために
>DateDiff("n",[作業開始時間],[作業終了時間]+IIf([作業終了時間]<[作業開始時間],1,0))
となっていますが。今回は「Now()」で時間を代入しているため日付を持たせているので
そのまま「退勤時間」から「出勤時間」を引けば良いと思われます。
>>>「? DateDiff("n",#2005/08/08 12:00#,#2005/08/09 1:00#)」
>>>「? CDate(#2005/08/09 1:00# - #2005/08/08 12:00#)」
|
|