![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
とある作業に対して、開始時刻と終了時刻とを入力し、作業時間を求めるプログラムを作っていて気がついたのですが、理解困難な状態になってます。
作業時間=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で質問しましょう!
似たような質問が見つかりました
- MySQL ある時間以内の利用者の抽出について 3 2022/03/26 11:15
- Excel(エクセル) 指定した値以上の中で最小値を出したい 7 2022/10/24 21:12
- 建築学 ネットワーク工程表(1級管工事施工管理) 5 2022/08/24 08:17
- その他(Microsoft Office) エクセル 条件付き書式 日をまたぐ塗りつぶし 1 2023/01/13 18:00
- Excel(エクセル) セルに特定の色が出た時だけ、式を発動させたい 4 2022/06/17 10:32
- Excel(エクセル) エクセルで休憩時間を引いての作業計画予定表の作成の仕方 2 2023/07/24 14:11
- 建設業・製造業 こういう職場どう思いますか? 勤務開始時間前に現場に入り、まずは掃除をしがてら業務中の作業者仲間にあ 1 2023/06/18 15:33
- その他(プログラミング・Web制作) GASでガントチャートを作りたいです 1 2022/09/05 17:26
- 派遣社員・契約社員 不当要求?働いた分は金払うのが筋やろ❗⁉️私はこないだ、日雇い派遣で事務所移転の仕事をしました。集合 5 2022/04/09 11:28
- Java Java 年数計算 3 2023/01/28 10:52
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
電卓の作成 VB
-
VB2013での時間帯判定で困って...
-
c言語またはVBのSin Cos Tan
-
秒数を入力すると○時間○分○秒と...
-
印刷ダイアログを表示させない方法
-
意味不明の実行時エラーで困っ...
-
vba 時間の引き算 例えば 15:00...
-
「読み込み違反」が起きたとき...
-
byte型をstring型として扱うには
-
A4の2枚をA3の1枚にする編集方法?
-
オブジェクト(dll)のレジストリ...
-
Visual Studio 「AnyCpu」について
-
VB6(SP5)+OO4OでCreateObjectが...
-
ManagementClassが見つからない。
-
EXCEL VBAから他アプリケーショ...
-
VBAでOutlookを終了させたい Ex...
-
VBAでArrayListを使う為の「msc...
-
ミキサーの情報の取得方法を教えて
-
アウトルックが起動しているか...
-
Designer.vbは直接コードをいじ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
matplotlibで任意の角度の円弧...
-
Accessのクエリの値を変換(代入...
-
画像を二次元フーリエ変換
-
VB2013での時間帯判定で困って...
-
経過日数を調べたい
-
VB2010で、時刻と時間の計算に...
-
秒数を入力すると○時間○分○秒と...
-
DateDiff関数の怪!?
-
電卓の作成 VB
-
時間領域と周波数領域
-
C言語のプログラム
-
Matlabで群遅延特性
-
カラーコード 濃くしたい
-
あと何日or何日目?を計算する方法
-
c言語またはVBのSin Cos Tan
-
VBで時間計算の方法
-
2進数を10進数にする方法
-
擬似マインスイーパー
-
Visual Basicで多角形を描くプ...
-
精度を上げたいのですが…
おすすめ情報