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

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

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

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

解決済

JavaScriptのカレンダーのif文によるエラー

ntttt
ntttt

総合スコア49

JavaScript

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

5回答

0評価

1クリップ

179閲覧

投稿2019/06/04 02:12

編集2019/06/05 11:51
const weeks = ['日', '月', '火', '水', '木', '金', '土']; const date = new Date(); let year = date.getFullYear(); let month = date.getMonth(); function showCalendar(year, month) { const calendarHtml = createCalendar(year, month); const sec = document.createElement("section"); sec.innerHTML = calendarHtml; document.querySelector("#calendar").appendChild(sec); month ++; if(month > 12) { year ++; month = 1; } } function createCalendar(year, month) { let today = date.getDate(); const startDate = new Date(year, month ,1); const endDate = new Date(year, month + 1, 0); const endDayCount = endDate.getDate(); const lastMonthEndDate = new Date(year, month , 0); const lastMonthendDayCount = lastMonthEndDate.getDate(); const startDay = startDate.getDay(); let dayCount = 1; let calendarHtml = ""; calendarHtml += `<h1>${year}/${month + 1}</h1>`; calendarHtml += "<table>"; calendarHtml += "<tr>" for(let i = 0; i < weeks.length; i++) { calendarHtml += "<th>" + weeks[i] + "</th>"; } calendarHtml += "</tr>" **ここからがカレンダーを作成するコードになります** for(let w = 0; w < 6; w++) { calendarHtml += "<tr>"; for(let d = 0; d < 7; d++) { if(w == 0 && d < startDay) {           //lastMonthendDayCountは先月の末日の数値           //startDayは今月の最初の日の曜日の数値 let num = lastMonthendDayCount - startDay + d + 1; calendarHtml += `<td class = "is-disabled">${num}</td>`; } else if(dayCount > endDayCount) {           //dayCountは1           //endDayCountは今月の末日の数値 let num = dayCount - endDayCount; calendarHtml += `<td class="is-disabled">${num}</td>`; dayCount ++;          //todayは今日の数値 } else if(dayCount < today) { calendarHtml += `<td class="calendar_td" data-date="${year}/${month}/${dayCount}">${dayCount}</td>`; dayCount ++; } else if(dayCount == today) { calendarHtml += `<td class="calendar_td today" data-date="${year}/${month}/${dayCount}">${dayCount}</td>`; } else if(endDayCount > today) { calendarHtml += `<td class="calendar_td" data-date="${year}/${month}/${dayCount}">${today}</td>`; today ++; console.log(today); } } calendarHtml += "</tr>"; } calendarHtml += "</table>"; return calendarHtml; } **ここまでがカレンダーを作成するコードになります** function moveCalendar(e) { document.querySelector("#calendar").innerHTML = ""; if(e.target.id === 'prev') { month --; if(month < 1) { year --; month = 12; } } if(e.target.id === "next") { month ++; if(month > 12) { year ++; month = 1; } } showCalendar(year, month); } document.querySelector("#prev").addEventListener("click", moveCalendar); document.querySelector("#next").addEventListener("click", moveCalendar);

JavaScriptを勉強中の者です。
カレンダーで今日の日付の場所にマークアップをしたいのですが、今のコードのままでは今日以降の日付が今日と同じ日付になってしまいます。
日付に関するコードは「ここからがカレンダーを作成するコードになります」以降から「ここまでがカレンダーを作成するコードになります」までとなります。
至らない点があるとは思いますが、お知恵を拝借できたら幸いです。
宜しくお願いします。

イメージ説明

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

yambejp

2019/06/04 03:16

とりえあずおかしい挙動でもよいのでコピペで動くソースを提示ください
m.ts10806

2019/06/04 04:00

タイトルには要件(起きている問題、実現したいこと)を記載してください。 タグにある内容や汎用的すぎる内容はあまり好ましくありません

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

JavaScript

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