標記の件で質問です。
「JavaScript例文辞典」 www.openspc2.org/reibun/javascript/string/018/index.html
掲載の情報を元に下記の関数を作成しましたが、引数により、1日の誤差が出てしまいます。
<script Language="JavaScript"><!--
function DateDiffStr(strDtmSt,strDtmEd)
{
strArr = strDtmSt.split("/");
ys = strArr[0];
ms = strArr[1];
ds = strArr[2];
dtmSt = new Date(ys, ms, ds);
strArr = strDtmEd.split("/");
ye = strArr[0];
me = strArr[1];
de = strArr[2];
dtmEd = new Date(ye, me, de);
dayMS = 24 * 60 * 60 * 1000;
n = Math.floor((dtmEd.getTime() - dtmSt.getTime()) / dayMS);
return n;
}
// --></script>
具体的には、
DateDiffStr("2004/06/24","2004/06/30"); → 6 (○)
DateDiffStr("2004/06/24","2004/07/01"); → 8 (×)
DateDiffStr("2004/06/24","2004/09/01"); → 69 (○)
となります。月の跨ぎ方により、誤差が出るようです。
状況的には、浮動小数点数の演算誤差が疑わしいのですが、根本的な解決策はありますでしょうか?
一応、下記ページの解説も目を通し、紹介されている関数も試用してみたのですが、上記の現象は解消できませんでした。
http://www.geocities.co.jp/SiliconValley/4334/un …
解決策、または回避手段をご存知の方、ご教示頂けると幸いです。
No.1ベストアンサー
- 回答日時:
new Date(YEAR, MONTH, DAY)
という形式で Dateオブジェクトを生成する時は、MONTH は実際の月から1を引いた値を指定する必要があります。
後はもうお分かりですね?
参考URL:http://tohoho.wakusei.ne.jp/js/date.htm#newDate
コメントありがとうございます。
ご指摘の通りでした。
配列の添え字と常に要素数を混同する (多くのプログラミング言語では添え字はゼロから始まるので、1少なくなる) という、ありがちなミスですね。
サンプルコードを見た時点で -1 の意味を見抜けなかったのが敗因です。
お粗末様でした。
診立てが見当違いだったために明後日の方向を調べて時間を浪費してしまいました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaScriptでグローバル変数に...
-
jquery か javascript で json ...
-
ローカルのレジストリを読みたい
-
JavaScriptでオブジェクトを識...
-
Webページ中の javascript をVB...
-
【javascript】プロパティ?オ...
-
正整数の半角数字かどうか判定する
-
JavaScriptでテキス...
-
「終了していない文字列型の定...
-
ASP(VBS) ←→ JavaScript の変数...
-
VB.NET2003 テキストボックスに...
-
Vba SelStart、SelLen教えてく...
-
JSPの処理の途中で、JavaScript...
-
Ajax以外で、JavaScriptからPHP...
-
「光の三原色」みたいな「三つ...
-
Javascriptエラーの原因が分か...
-
csvファイルを読み込み、該当項...
-
Win版IllustratorCS3でJavascri...
-
VBScript から JavaScript を呼...
-
初心者です。gulpでコンパイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
jquery か javascript で json ...
-
エクセル2010のvbaについて
-
javaScriptでグローバル変数に...
-
画面間でのJavaScrip...
-
文字を移動させその位置を表示...
-
フォルダ内のファイル名を取得...
-
オライリーのプログラミングPHP...
-
ASP.NETでURLにマッピングされ...
-
CSSのクラスを動的に変更 classで
-
イベントevt?evt.target:event....
-
一定時間経つと画像を消す方法
-
クラス デフォルトプロパティの...
-
event.srcElementの動的設定
-
「リンク」と「ハイパーリンク...
-
VBAの引数の指定 カッコとイコ...
-
strictモードでなぜエラーにな...
-
JSの「document.getElementById...
-
Shell.ApplicationでのIEオブ...
おすすめ情報