毎月、パートナーは親友と会う約束をします。 二人ともスケジュールがとても忙しく、都合のよい日を見つけるのはひと苦労です! 自分も忙しいので、パートナーは会えそうな日をいつも確認してきます。
今月の通話で、パートナーはこんな質問をしてきました。
とまどいながら、『teenth』の日とは何なのかと尋ねます。 パートナーは、『teenth』の日とは自分が考え出した概念で、1か月のうち英語で『-teenth』で終わる日のことだと説明します。
曜日も7つあるので、どの曜日にも毎月_ちょうど1日_ずつ『teenth』の日があることになります。
『teenth』の日の意味がわかったので、カレンダーを確認します。 『teenth』の木曜日には何も予定がないので、うれしくなって、その日にちでいいとパートナーに伝えます。
課題は、月、年、曜日、週が与えられたときに、ミートアップの正確な日付を求めることです。
週の値には、次の6つがあります:first、second、third、fourth、last、teenth。
たとえば、2018年1月の第1月曜日に行われるミートアップの日付を求めることがあります(2018年1月1日)。
同じように、次の日付を求めることもあります:
teenth週とは、1か月のうち、英語で'-teenth'で終わる7日間、つまり13日、14日、15日、16日、17日、18日、19日のことです。
1953年8月のteenth週の土曜日を求めるときは、その月のカレンダーを見てみましょう:
August 1953
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
ここから、teenth週の土曜日は1953年8月15日だとわかります。
この演習では、文字列から日付をパースし、日付を文字列にフォーマットします。 これは、他のプログラミング言語に慣れていると少し勝手が違うかもしれません。 詳しくは、ヒントファイルを確認してみてください。