根据输入的年月日,确定这一天是星期几。

根据输入的年月日,确定这一天是星期几。

法一:根据基姆拉尔森日期公式,已知年月日,可以快速的求出这一天是星期几。

基姆拉尔森日期公式如下所示:
《根据输入的年月日,确定这一天是星期几。》

参数说明:

y 为我们输入的年;

m 为我们输入的月;

d 为我们输入的日。

注意:mod为取模符号。在使用时,如果遇到一月或者二月,需要把一月和二月看成是上一年的十三月和十四月。例如,如果日期是 2004-1-10 ,则需要换算成 2003-13-10, 再代入公式进行计算。

package com.jianglan.date;

import java.util.Scanner;

/** * 任务:根据输入的年月日,确定这一天是星期几。 */
public class Demo01 { 
	public static void main(String args[]) { 
		Scanner scanner = new Scanner(System.in);
		int y = scanner.nextInt();// 声明 int 类型的变量 y 用来获取控制台输入的年
		int m = scanner.nextInt();// 声明 int 类型的变量 m 用来获取控制台输入的月
		int d = scanner.nextInt();// 声明 int 类型的变量 d 用来获取控制台输入的日
		// 第一步:判断变量 m 的值是否是 1 或者 2。如果是,则变量 m 在原来的基础上加12,同时变量 y 在原来的基础上减1
		// 对用户可能会输入1月或者2月进行处理
		if (m == 1 || m == 2) { 
			m += 12;
			y--;
		}
		// 第二步:使用基姆拉尔森日期公式,计算星期几
		int iweek;
		iweek = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
		// 第三步:使用多路分支判断星期几。如果是星期一,则在控制台输出"星期一";如果是星期二,则在控制台输出"星期二"....以此类推,如果是星期日,就是在控制台输出"星期日"
		switch (iweek) { 
		case 0:
			System.out.println("星期一");
			break;
		case 1:
			System.out.println("星期二");
			break;
		case 2:
			System.out.println("星期三");
			break;
		case 3:
			System.out.println("星期四");
			break;
		case 4:
			System.out.println("星期五");
			break;
		case 5:
			System.out.println("星期六");
			break;
		case 6:
			System.out.println("星期日");
			break;

		}
	}
}

运行结果:
《根据输入的年月日,确定这一天是星期几。》
《根据输入的年月日,确定这一天是星期几。》

    原文作者:立志Java工程师
    原文地址: https://blog.csdn.net/muyuxifeng/article/details/115092349
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞