Skip to content

09.曜日の判定

domanthan edited this page Jun 22, 2020 · 1 revision
/**
 *
 */
package lesson05;

import lesson.common.CalendarUtil;

/**
 * @author gridscale
 *
 */
public class TestWeekDay {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO 2030年3月1日は何曜日ですか。
		//		 > Step1: 西暦1、2、3、、、、、2019年はそれぞれお何日ありますか?
		//		  > ヒント:うる年以外はみんな1年間=365日
		int sum1 = 0;
		for (int year = 1; year < 2020; year++) {
			sum1 += CalendarUtil.howManyDaysOf(year);
		}

		//		  > Step2: 2020年1月1日~1月31日までは何日ありますか。
		int sum2 = CalendarUtil.howManyDaysOfMonth(2020,1);

		//                    2月1日から9日までは9日
		int today = 9;
		//		  > Step3: 西暦1年1月1日から2030年3月1日までは何日ありますか。
		                   // 上記の日数の合計。
		int totalDays = sum1 + sum2 + today;

		//		  > Step4: 1週間は7日だから、Step3の日数÷7の余りを求め、3月1日は何曜日と判る。
		int remainder = totalDays % 7;

		String weekDay = "";
		switch (remainder) {
		case 0: weekDay = "日曜日"; break;
		case 1: weekDay = "月曜日"; break;
		case 2: weekDay = "火曜日"; break;
		case 3: weekDay = "水曜日"; break;
		case 4: weekDay = "木曜日"; break;
		case 5: weekDay = "金曜日"; break;
		case 6: weekDay = "土曜日"; break;

		}

		System.out.println("2020年2月9日は" + weekDay);

	}

}

Clone this wiki locally