--- id: 5900f37f1000cf542c50fe92 title: '問題 19: 日曜日を数え上げる' challengeType: 5 forumTopicId: 301827 dashedName: problem-19-counting-sundays --- # --description-- 次の情報が与えられていますが、自分で調べても構いません。 20 世紀 (1901 年 1 月 1 日〜2000 年 12 月 31 日) の間に月の 1 日目が日曜日であったのは何回ですか。 # --hints-- `countingSundays(1943, 1946)` は数値を返す必要があります。 ```js assert(typeof countingSundays(1943, 1946) === 'number'); ``` `countingSundays(1943, 1946)` は 6 を返す必要があります。 ```js assert.strictEqual(countingSundays(1943, 1946), 6); ``` `countingSundays(1995, 2000)` は 10 を返す必要があります。 ```js assert.strictEqual(countingSundays(1995, 2000), 10); ``` `countingSundays(1901, 2000)` は 171 を返す必要があります。 ```js assert.strictEqual(countingSundays(1901, 2000), 171); ``` # --seed-- ## --seed-contents-- ```js function countingSundays(firstYear, lastYear) { return true; } countingSundays(1943, 1946); ``` # --solutions-- ```js function countingSundays(firstYear, lastYear) { let sundays = 0; for (let year = firstYear; year <= lastYear; year++) { for (let month = 0; month <= 11; month++) { const thisDate = new Date(year, month, 1); if (thisDate.getDay() === 0) { sundays++; } } } return sundays; } ```