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

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

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

基姆拉尔森日期公式如下所示:
在这里插入图片描述

参数说明:

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;

		}
	}
}

运行结果:
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

立志Java工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值