(JS)Programmers:2016年
6300 ワード
問題の説明
2016年1月1日は金曜日です.2016年a月b日は何曜日ですか?2つの数a,bを入力し,2016年a月b日が曜日である関数を返し,解を完成する.日曜日の名称は日曜日から土曜日までSUN、MON、TUE、WED、THU、FRI、SAT
.たとえば、a=5、b=24の場合は、5月24日が火曜日であるため、文字列TUEを返します.
せいげんじょうけん
2016年は閏年です.
2016年a月b日は実在の日です
(13月26日または2月45日などの日付は提供されません)
I/O例
問題を解く
今週のJavaScript DOM課題はカレンダー作成なので、コンセプトを学びながら選択する問題です.問題自体は簡単で、難しくない.
参照用に毎週1つの配列に配置します.
基準点となる2016年をnewdateのパラメータとして
問題は月と日付を解関数のパラメータとして使用しているからです.
new Dateに入るパラメータの変数として使用します.
function solution(a, b) {
const week = ['SUN','MON','TUE','WED','THU','FRI','SAT'];
const currentTime = new Date(`2016-${a}-${b}`).getDay();
return week[currentTime];
}
他人を解く
function solution(a, b) {
const monthDay = [31,29,31,30,31,30,31,31,30,31,30,31]
const weekDay = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"]
let days = b
for(let i=0 ; i<a-1 ; i++)
days += monthDay[i];
return weekDay[days%7];
}
データ・オブジェクトを使用せず、アルゴリズムのみを使用して解決する問題.2016年各月の日数を並べ、基準となる参考値を用意しています.
毎月の日数を参照するためにfor繰返し文では
a-1
を用いた.アルゴリズムだけで問題を解くと,この解決法はより正解に近い.
Reference
この問題について((JS)Programmers:2016年), 我々は、より多くの情報をここで見つけました https://velog.io/@yunsungyang-omc/JS-Programmers-2016년テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol