営業日カレンダースクリプトというサイトがあります。
http://www.calenderdayo.com/
このスクリプトを利用したとき、今日の日付が3月31日の時、翌4月以降のカレンダーの表示がおかしくなるときがあります。
3/30では表示はおかしくありません。4/1でもおかしくありません。現在確認できているのは3/31の時だけです。
具体的には4月の開始日が2009/4/1なら水曜日から始まらなければならないところが金曜日から始まっています。
制作者に連絡をしたくても、サイトに記述がないので連絡できませんでした。
Javascriptには詳しくないので、一応ソースを追ってみたりしたのですがよくわかりませんでした。
お解りの方がいれば、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
>具体的な解決策になっているのかどうかわかりませんが、これで様子を見てみます。
最良の解決策かどうかは判りませんが、以下のような現象ですので、
解とりあえず解決はできています。
var day = new Date();
day.setFullYear(year);
day.setMonth(nextMonth -1);
上記のJavascriptのコードで、今日が 3/31 で nextMonth が 4 の場合、
day.setMonth(nextMonth -1); を実行した時点で 4月 ではなく 5月 に
なってしまう。
これは、new Date(); を実行した時点で当日が設定されているために
「日」が 31 になっており、そのまま「月」に 4 を設定すると、4/31 が
ないため、5/1 になってしまう現象です。
例文までいただきありがとうございます。
該当部分をいくつか修正して、とりあえず動いておりますので、おそらくは大丈夫だと思います。
ありがとうございました。
No.1
- 回答日時:
質問者の書かれたScriptではないので、あまり細かいことは書きませんが・・
3/31以外にも、当日が大の月の月末で、大の月から小の月に変わる際に
不具合が発生しています。
new Date();
を使用した後に、月を更新する際(たとえば3月⇒4月の時)
月を設定した時点で、31日がない月であれば翌月に変わってしまっています。
new Date(); を使用している箇所で、setMonth()で月を設定する
前に、setDate(1)などで、日付を31日以外にしてください。
この回答への補足
なるほど、大の月(31日等)から小の月(31日より小さい月)に変わる際に発生しているのですね。ということは年の結構な回数が不具合になるわけですね。。。
とりあえず、アドバイスいただいたように「setDate(1)」を指定して、現在確認したところでは不具合はないように思います。
具体的な解決策になっているのかどうかわかりませんが、これで様子を見てみます。
フリーのスクリプトとはいえ、自作ではないのでここにスクリプトを記述することに抵抗があったため、わざわざサイトにいってみてもらうような回りくどいことをしています。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- 派遣社員・契約社員 派遣仕事開始までの期間。 5月9日月曜日、派遣会社の紹介された仕事の職場見学をしてきました。3人応募 2 2022/05/09 20:48
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/10 09:15
- その他(教育・科学・学問) 私の友人が課題提出を今日迄だと思っていたけれど大学が今日休みだと気付いてやばい!と連絡してきました。 3 2023/02/12 17:52
- Visual Basic(VBA) excel2016でリストからカレンダーに内容を反映させたいです 2 2022/10/27 15:32
- Excel(エクセル) Excelで作成しているシート(表) 5 2023/06/15 10:20
- 作詞・作曲 ピンク・レディー『渚のシンドバット』の歌詞には岸田総理のウクライナ電撃訪問が歌いこまれている? 5 2023/03/23 19:48
- 妊娠 妊娠検査薬の反応について 7 2023/04/19 06:47
- Excel(エクセル) エクセルでカレンダーを作りたい 5 2023/05/16 07:32
- Excel(エクセル) Excel セルに入っている日付を参照して、別シートのリストを表示させたい 1 2022/04/12 17:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
"JScript"が見つかりません!
-
Linuxのcronとrc.localでの制御...
-
ADサーバにおけるログインID,PC...
-
Perlのライセンス
-
Javascriptでカレンダー表示
-
シェルでsyntax errorがでてしまう
-
VBSで自動ログインについて
-
awkの処理速度を改善したい
-
例外処理のフローチャートの記...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAでリンク切れをチェッ...
-
モジュールの最大数はいくつな...
-
グラフのX,Y座標を取得したい
-
LCD ディスプレイを Raspberry ...
-
【vba】フォームに書いてあ...
-
'Range'メソッドは失敗しました
-
標準モジュールを削除したい。(...
-
VBAで別モジュールへの変数の受...
-
印刷後メッセージボックスを表...
-
モジュールとは何ですか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cからシェルを起動し返り値をハ...
-
Perlのライセンス
-
powershellで関数名を変更する...
-
awkの処理速度を改善したい
-
perlスクリプトのブラウザURLか...
-
CシェルプログラミングをCygwinで?
-
cygwinでcshが認識されず困って...
-
vbs: オブジェクトがコレクショ...
-
UWSCのスクリプトにラグが発生...
-
"JScript"が見つかりません!
-
インタプリタ言語とスプリクト言語
-
[ASP]条件によってインクルード...
-
ドル記号+アルファベット
-
DBファイルが0644になってしまう
-
VBSを利用して、IEのタブを自動...
-
ADサーバにおけるログインID,PC...
-
下階層のファイルを含めての最...
-
VBScriptでCurrentDirectoryを...
-
ディスクの空き容量を求める(W...
-
Perlから2chに書き込むには?
おすすめ情報