質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

434閲覧

js 日付計算について re;

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/05/07 09:45

編集2022/05/08 08:29

前回日付計算の質問をして、回答いただいたコードや他のサイトのコードを参考に実装できたのですが、テストしていたら閏年でエラーに気づき、修正していたら何をしているのかわからなくなりました。
やりたいこと
・閏年じゃない際は28日と記入した時、普通に計算される
・アラート表示後のリセットの実装

エラー
非閏年で2月29日と記入、ボタンを押すとアラートが出るのに、
非閏年で2月28日と記入、ボタンを押すとこちらにもアラートが出てしまいます。

htmlのサイト表示内容はしっかり実装できています。
閏年に関しては、new Dateでnew Date(year, 1, 29).getDate() === 29など入れてみたり、ifで閏年の判定してみたのですが、わからなくなり、詰まりました。
アドバイスいただきたいです。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

日付のチェックを行うなら、入力の年月日からDateオブジェクトを作り、そのDateオブジェクトの年月日が入力と等しいかどうかを判定すればいいでしょう。

js

1// y, m, d がユーザからの入力だとして 2let baseDate = new Date(y, m - 1, d); 3if (baseDate.getFullYear() == y && baseDate.getMonth() == m - 1 && 4 baseDate.getDate() == d) { 5 // 日付OK 6} else { 7 // 実在しない日付 8}

投稿2022/05/07 15:07

int32_t

総合スコア20884

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/05/08 07:35

ご回答ありがとうございます。 とてもわかりやすかったです。 ありがとうございました。
guest

0

d <= 29;は何を狙って書いた行でしょうか。

どんな式もセミコロンをつければ文になりますが、値は無視されます。つまり、「d <= 29;」は、「dが29以下かを判定するけど、その結果は何にも使わない」という、(dに特殊なオブジェクトが入っていない限り)無意味な文となっています。

投稿2022/05/07 10:20

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/05/07 11:37

回答ありがとうございます。 その件に関しては、if文の条件式の結果をどう書けばいいのかわからなくなり、質問にも書いたエラーのことを考え、閏年の時は日を29日まで、閏年じゃない時は日を28日までという風にすれば識別してくれるかなと迷走程度に書いていたものです汗
guest

0

日ではなく年でうるう年かどうか判定してください。
【JavaScript】 うるう年判定の一番簡単な方法

もしくは日付関係はライブラリに任せるのが良。
moment.jsでうるう年か判定する

投稿2022/05/07 09:50

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/05/07 11:38

回答ありがとうございます。 参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問