博客
关于我
【20171002】Java每日一练
阅读量:325 次
发布时间:2019-03-04

本文共 853 字,大约阅读时间需要 2 分钟。

已知年月日求星期(1900年之后)

代码实现1:计算总天数并确定星期

本代码采用一种通过计算从1900年至目标年份之间的总天数,再加上目标年份内已过的日期,来确定某一天是星期几的方法。以下是代码的主要逻辑解释:

  • 输入处理:通过 Scanner 类读取用户输入的年份、月份和日期。
  • 闰年计算:从1900年到目标年份,逐年判断是否为闰年。闰年的判断条件是:
    • 能被4整除但不能被100整除;或者
    • 能被400整除。每个闰年增加1天。
  • 年份天数计算:计算目标年份与1900年之间的年份天数,包括目标年份的非闰年天数。
  • 月份天数计算:根据目标月份,逐个累加相应的天数。闰年的判断依然适用。
  • 日期天数计算:将目标日期加到总天数中。
  • 星期计算:通过取总天数对7取模,得到星期几的编号(1-7),再通过switch语句输出对应的中文星期名称。
  • 代码实现2:蔡勒公式

    蔡勒公式是一种计算星期几的数学公式,适用于公历。其公式为:

    $$h = \left(q + \left[\frac{13(m + 1)}{5}\right] + K + \left[\frac{K}{4}\right] + \left[\frac{J}{4}\right] + 5J\right) \mod 7$$

    其中:

    • ( h ) 为星期几(0=星期六,1=星期日,2=星期一,...,6=星期五)
    • ( q ) 为日期中的日
    • ( m ) 为月份(3=三月,4=四月,...,14=二月)
    • ( K ) 为年份的后两位
    • ( J ) 为年份的前两位

    代码实现说明

  • 输入处理:读取年份、月份和日期。
  • 变量赋值:将年份分割为后两位 ( K ) 和前两位 ( J )。
  • 调整月份:由于蔡勒公式中月份从3开始,需将1月和2月调至上一年的13月和14月。
  • 公式计算:按照蔡勒公式计算 ( h ),并根据结果确定星期几。
  • 总结

    以上两种方法均可用于计算星期几,但各有优劣。Zeller公式计算量大,但逻辑简单;蔡勒公式则更为简洁,适合编程实现。选择哪种方法取决于具体需求。

    转载地址:http://hqdh.baihongyu.com/

    你可能感兴趣的文章
    php -- 魔术方法 之 获取属性:__get()
    查看>>
    php -树-二叉树的实现
    查看>>
    PHP -算法-二路归并
    查看>>
    php 2条不一样 的json数据 怎么放在一个json里面_如果你是PHP开发者,请务必了解一下Composer...
    查看>>
    php 360 不记住密码,JavaScript_多种方法实现360浏览器下禁止自动填写用户名密码,目前开发一个项目遇到一个很 - phpStudy...
    查看>>
    regExp的match、exec、test区别
    查看>>
    php 404 自定义,APACHE 自定义404错误页面设置方法
    查看>>
    PHP 5.3.0以上推荐使用mysqlnd驱动
    查看>>
    php 7.2 安装 mcrypt 扩展: mcrypt 扩展从 php 7.1.0 开始废弃;自 php 7.2.0 起,会移到 pecl...
    查看>>
    php aes sha1解密,PHP AES加密/解密
    查看>>
    php array 分片,PHP常用数组函数小结
    查看>>
    php CI框架单个file表单多文件上传例子
    查看>>
    php composer
    查看>>
    reflow和repaint引发的性能问题
    查看>>
    Reflection反射机制原理、使用场景 及 缺陷
    查看>>
    php csv 导出
    查看>>
    php curl 实例+详解
    查看>>
    php curl_init函数用法(http://blog.sina.com.cn/s/blog_640738130100tsig.html)
    查看>>
    php curl_multi批量发送http请求
    查看>>
    php curl请求微信发红包接口出现错误:Peer's Certificate issuer is not recognized.
    查看>>