
nenonenoです。こんにちわ
Windows98,VB6SP5の環境でDate型の変数dtmNext,dtmToを比較しようとしたのですが、同じはずなのに片方が大きいと判定していまいます。
datediffでしらべると0:00:00と返すので、同じだと思うのですが...
使い方が悪いのであれば、どこか指摘していただけるとありがたいです。
よろしくお願いします。m(_ _)m
Dim dtmNext, dtmTo, dtmTmp As Date
この間にもコードがあります
Debug.Print "dtmNext:"; dtmNext; "dtmTo:"; dtmTo
If dtmNext = dtmTo Then Debug.Print "Pass2 ="
If dtmNext > dtmTo Then Debug.Print "Pass2 >"
If dtmNext < dtmTo Then Debug.Print "Pass2 <"
dtmTmp = DateDiff("n", dtmNext, dtmTo)
Debug.Print "dtmTmp:"; dtmTmp
↓---------------------------イミディエイトウインドウの表示
dtmNext:03/02/17 15:00:00 dtmTo:03/02/17 15:00:00
Pass2 >
dtmTmp:0:00:00
No.2ベストアンサー
- 回答日時:
日付時刻型の内部表現は浮動小数点数です。
ご質問のケースではたぶん、1秒未満の端数部分が等しくないのでしょう。
Excel 2000で試してみましたが、小数部分で小さな差があっても、DateDiff関数では差はゼロと返されるようです。
?CDbl(#2003/02/17 15:00:00#)
37669.625
?Format$(CDate(37669.625),"yyyy/mm/dd hh:nn:ss")
2003/02/17 15:00:00
?Format$(CDate(37669.624999),"yyyy/mm/dd hh:nn:ss")
2003/02/17 15:00:00
?Format$(CDate(37669.625001),"yyyy/mm/dd hh:nn:ss")
2003/02/17 15:00:00
?CDate(37669.624999) = CDate(37669.625)
False
?DateDiff("s", CDate(37669.624999), CDate(37669.625))
0
そうですね。浮動小数点演算という事をすっかり忘れていました。
こちらでもテストしてみましたが、おっしゃる通りの現象となりました。
一度計算したDeta型は茣蓙が含まれていると思うべきですね。
datediff関数を使って比較するか、関数を作るかしようと思います。
テストまでして頂いて、ありがとうございました。感謝します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) パイソンのプログラムで continue と passの違い 3 2022/03/25 07:38
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DataGridViewでyyyy/MM/dd
-
コンボボックスに日付を表示する
-
VBAのオーバーフローについて質...
-
Eclipseの対応する括弧の強調表...
-
VB.NET 日付設定
-
「eclipseで作るカレンダー(ス...
-
【VBA】土日をスキップして日付...
-
今日より1週間後の日付を表示で...
-
JQueryのfullcalendarを使って...
-
システム日付とは?
-
htmlで日付表示。三日後の日付...
-
VB6.0 のformat関数について
-
VBAで当月の1日を表示するには...
-
VBA 日付・時刻の判別 時刻を認...
-
今日より前の書き方 マクロ
-
monthCalendarがデザイナとEXE...
-
1本あたり○円と表示する時どの...
-
VB6で時刻の範囲に入っているか...
-
<Access>2つの抽出条件が合致...
-
【Excel VBA】条件に合った行の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのVBAで日付を検索し転...
-
ユーザーフォームのラベルに日...
-
DataGridViewでyyyy/MM/dd
-
Eclipseの対応する括弧の強調表...
-
【Excel VBA】条件に合った行の...
-
VisualBasic6.0のFormat関数で...
-
システム日付とは?
-
【VBA】土日をスキップして日付...
-
テキストボックスにカレンダー...
-
指定した日付が、その月の第何...
-
今日より前の書き方 マクロ
-
VBAで日付入力しているのですが
-
VBでDate型の大小比較がうまく...
-
JSPからYYYYMMDDで日付入力する
-
VBA 日付、未来の日付はエラー...
-
テキストボックスに今日の日付...
-
「eclipseで作るカレンダー(ス...
-
VB 日付範囲チェック
-
VBAで当月の1日を表示するには...
-
1本あたり○円と表示する時どの...
おすすめ情報