とある作業に対して、開始時刻と終了時刻とを入力し、作業時間を求めるプログラムを作っていて気がついたのですが、理解困難な状態になってます。
作業時間=DateDiff(”h”,[作業開始], [作業終了])
で、何時間かを求めようとした場合です。
例)
作業開始=9:00:00
作業終了=9:15:00 の時
DateDiff("h",~) = 0 ※正しい
作業開始=9:50:00
作業終了=10:05:00 の時
DateDiff("h",~) = 1 ※違うぞ
前者の場合は問題ないとして、後者の場合にDateDiffが1を返すのは納得がいきません。同じ15分間なのに。
試しに、DateDiff("h", TimeSerial(9,59,59), TimeSerial(10,0,0)) を計算させても、1を返してきます。
単に、Hour([終了時刻])-Hour([開始時刻])をしているにすぎない動作です。
SQL Server の DateDiff も同じ動きでした。
DateDiffってそんなものなんでしょうか。
※これで大バクを出してしまいました・・(テスト不足と言われればそれまでですが)
No.1ベストアンサー
- 回答日時:
ヘルプを良く読んだほうが良いでしょうねぇ
12 月 31 日とその次の年の 1 月 1 日を比較すると、DateDiff 関数の年 ("yyyy") は、1 日後であっても、1 を返します。
こう言った内容が記載されていますので、関数の特性も理解できるのではないですか
No.2
- 回答日時:
>前者の場合は問題ないとして、後者の場合にDateDiffが
>1を返すのは納得がいきません。同じ15分間なのに。
>単に、Hour([終了時刻])-Hour([開始時刻])をしているにすぎない動作です。
DateDiff関数は、時間間隔の単位での結果を求めます。
ですから、
作業開始=9:50:00 作業終了=10:05:00 の時は、
10 - 9 = 1
となります。これで正常です。
時間間隔が "h" ですから 分、秒の部分は無視されます。
これが不都合なら時間間隔を 分 "n" にして計算した後、時間に換算するなどすれば良いでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
階乗の逆数を計算するFunction...
-
あと何日or何日目?を計算する方法
-
VBで時間計算の方法
-
画像を二次元フーリエ変換
-
アウトルックが起動しているか...
-
vba 時間の引き算 例えば 15:00...
-
VB6.0で作成したexeファイルが...
-
Designer.vbは直接コードをいじ...
-
意味不明の実行時エラーで困っ...
-
VB6.0 exe作成時に実行時エラー...
-
ManagementClassが見つからない。
-
[VB.net] ExcelへのQRコード出...
-
ビルドが実行できない 先へ進...
-
Javaから直接プリンターへ印刷...
-
excel vbaから実行するexe実行...
-
Windows PowerShellでC言語を実...
-
スプレッド(Spread 6) で縮小...
-
VBAでArrayListを使う為の「msc...
-
Excel 12.0とExcel 10.0両方を...
-
Visual Studio 「AnyCpu」について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
経過日数を調べたい
-
Accessのクエリの値を変換(代入...
-
VB2010で、時刻と時間の計算に...
-
VB2013での時間帯判定で困って...
-
単位計算のアルゴリズム
-
画像を二次元フーリエ変換
-
電卓の作成 VB
-
秒数を入力すると○時間○分○秒と...
-
DateDiff関数の怪!?
-
UTF_16からUTF_8への変換で困っ...
-
Matlabで群遅延特性
-
カラーコード 濃くしたい
-
離散コサイン変換(DCT)について
-
グリッドの使い方について
-
プログラム作成 計算
-
変数の型を変換する方法を教え...
-
Designer.vbは直接コードをいじ...
-
Visual Studio 「AnyCpu」について
-
意味不明の実行時エラーで困っ...
-
vba 時間の引き算 例えば 15:00...
おすすめ情報