• Java基础 - 练习(五)根据今天日期获取一周内的日期(基姆拉尔森公式)


    基姆拉尔森计算公式用于计算一周内的日期。比如给你年月日,从而计算今天是星期几。

    基姆拉尔森公式

     Week = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7, 3<=m<=14
    

    Week的取值范围是0 ~ 6,其中0代表星期日,1 ~ 6分别代表星期一到星期六。注意在运算时要把1月和2月看为是上一年的13月和14月代入计算!

    int Date(int y,int m,int d)
    {
        if(m==1||m==2){//一二月换算
            m+=12;
            y--;
        }
        int week = (d + 2*m +3*(m+1)/5 + y + y/4 - y/100 + y/400 + 1)%7;
        return week;//其中0~6表示周日、周一到周六
    }
    

    计算今天是周几

    public static void dateToWeek1(){
        Scanner scanner = new Scanner(System.in);
        // 声明 int 类型的变量 y 用来获取控制台输入的年
        System.out.print("年:");
        int y = scanner.nextInt();
        // 声明 int 类型的变量 m 用来获取控制台输入的月
        System.out.print("月:");
        int m = scanner.nextInt();
        // 声明 int 类型的变量 d 用来获取控制台输入的日
        System.out.print("日:");
        int d = scanner.nextInt();
        /********** Begin **********/
        // 第一步,判断变量 m 的值是否是 1 或者 2。如果是,则变量 m 在原来的基础上加12,同时变量 y 在原来的基础上减1
        if (m == 1 || m == 2) {
            m += 12;
            y--;
        }
        // 第二步,使用基姆拉尔森日期公式,计算星期几
        int iWeek = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
        // 第三步,使用多路分支判断星期几。如果是星期一,则在控制台输出"星期一";如果是星期二,则在控制台输出"星期二"....以此类推,如果是星期日,就是在控制台输出"星期日"
        switch (iWeek) {
            case 0:
                System.out.print("星期一");
                break;
            case 1:
                System.out.print("星期二");
                break;
            case 2:
                System.out.print("星期三");
                break;
            case 3:
                System.out.print("星期四");
                break;
            case 4:
                System.out.print("星期五");
                break;
            case 5:
                System.out.print("星期六");
                break;
            case 6:
                System.out.print("星期日");
                break;
        }
        /********** End **********/
    }
    

    在这里插入图片描述

  • 相关阅读:
    【Kotlin】函数
    工信部—高级软件开发工程师认证
    常用日期类
    基于Xml方式Bean的配置-Bean的依赖注入以及·自动装配
    SpringMvc之JSON和全程异常处理
    阿里云CDN实践
    深入解读[面向对象五大设计原则]
    【JavaScript进阶之旅 函数式编程篇 第三十三章】JS函数、特点、函数式编程、纯函数
    机器学习 笔记05——特征工程之特征处理:字典特征提取、文本特征提取
    Python JS逆向之Ku狗,实现搜索下载功能(附源码)
  • 原文地址:https://blog.csdn.net/qq_46254997/article/details/139815182