zoukankan      html  css  js  c++  java
  • 一个小问题:给一个日期,推算出当天是星期几

    首先是一个利用公式计算的通用方法:

    • 蔡勒(Zeller)公式

    其中:
    c:已经过的世纪数(比如2020年已经过了20个世纪);
    y:是本世纪内的年份(如四位数年的后两位);
    m:月;
    d:日;
    w:星期几,取值范围0-6,其中0是星期日。

    int year = 2020;
    int month = 4;
    int dayOfMonth = 3;
    
    int c = year / 100;
    int y = year % 100;
    int m = month;
    int d = dayOfMonth;
    
    int weekday = ((c / 4) - 2 * c + y + (y / 4) + (13 * (m + 1) / 5) + d - 1) % 7;
    System.out.println(weekday);
    

    此版本蔡勒公式计算的日期若在1582年10月4日之前,则需要小小的变化:把-1变成+2
    此外蔡勒公式有一些变种,对应的公式和时间节点都有变化。若感兴趣可以自行查资料

    另外,Java中有一些专门的类可以处理这个问题:

    • LocalDate类和DayOfWeek
    int year = 2020;
    int month = 4;
    int dayOfMonth = 3;
    
    LocalDate date = LocalDate.of(year, month, dayOfMonth);
    DayOfWeek weekday = date.getDayOfWeek();
    int value = weekday.getValue();
    System.out.println(value);
    

    这里星期数value取值范围1-7,其中7是星期天

  • 相关阅读:
    Mybatis分页插件
    Mybatis代码自动生成
    Spring-Mybatis依赖
    Spring-test单元测试
    Spring-json依赖
    Spring-MVC依赖
    Log4j日志依赖
    Spring数据库连接池依赖
    Spring-JDBC依赖
    Spring依赖
  • 原文地址:https://www.cnblogs.com/caophoenix/p/12458431.html
Copyright © 2011-2022 走看看