求一个日期是星期几 ·Java

求一日期是星期几,公式:总天数 = 平年累计值 + 闰年累计值 + 当年前几月累计天数 + 本月累计天数
//求一个日期是星期几,公式:总天数 = 平年累计值 + 闰年累计值 + 当年前几月累计天数 + 本月累计天数
public class  Main {
    public static void main(String[] args){

       int year=2016,month=12,day=31;
       boolean leap= year%400==0 || year%100!=0 && year%4==0;   //判断闰年

       int total=year-1980+(year-1980+3)%4;                     //求平年闰年累计总天数
        //因为平年365%7=1,闰年366%7=2,所以平闰年只需加1或2即可,且1980年的闰年不计

        for(int i=month-1;i>0;i--){         //计算前几月累计天数
            switch(i){
                case 1 : case 3 : case 5 : case 7 : case 8: case 10 : case 12 : total+=31; break;
                case 2: total += leap ? 28 : 29 ;  break;
                case 4: case 6: case 9 : case 11: total+=30;  break;
            }
        }

        total+=day;             //加上当月的天数
        int week=1;             //1987.12.31是星期一,假设星期日是0,星期一是1 ... 星期六是6,则week起始值是1;
        week=(week+total)%7;    //求的是星期几

        System.out.print(year+"年"+month+"月"+day+"日  星期");

        switch(week){
            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;

        }

    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值