java万年历制作方法·利用平年的1月1日和12月31日是同一个星期

已知1900年1月1日是星期一

平年有365天,除以7的余数是1,所以可以得出平年的1月1日和12月31日是同一个星期的结论。而假如是闰年,那就是错开一个星期。

完整源代码:

package jjj;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {

 Scanner aa=new Scanner(System.in);
 System.out.println("请输入年月日,用回车分隔");
 int nian=aa.nextInt();
 int yue=aa.nextInt();
 int ri=aa.nextInt();

//判断到这一年的前一年是不是闰年
int move=0;
for(int i=1900;i<nian;i++)
{
if((i%100!=0&&i%4==0)||(i%400==0))
{move=move+2;}
else
{move=move+1;}
}
//再判断这一年到这一天经过了多少天,也就是某个日期是一年中的第几天
int BB; int day=0;String weekday="00"; //2月天数
if((nian%100!=0&&nian%4==0)||(nian%400==0))
{BB=29;}else{BB=28;}
switch(yue) {
    case 1:day=0+ri;break;
    case 2:day=31+ri;break;
    case 3:day=31+BB+ri;break;
    case 4:day=31+BB+31+ri;break;
    case 5:day=31+BB+31+30+ri;break;
    case 6:day=31+BB+31+30+31+ri;break;
    case 7:day=31+BB+31+30+31+30+ri;break;
    case 8:day=31+BB+31+30+31+30+31+ri;break;
    case 9:day=31+BB+31+30+31+30+31+31+ri;break;
    case 10:day=31+BB+31+30+31+30+31+31+30+ri;break;
    case 11:day=31+BB+31+30+31+30+31+31+30+31+ri;break;
    case 12:day=31+BB+31+30+31+30+31+31+30+31+30+ri;break;
}
    int day2=day%7;
    int moveall=(move+day2)%7;
    switch(moveall)
        {
            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(weekday);
    }
}

运行结果:

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值