当前位置: 首页 > news >正文

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 在原来的基础上减1if (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 **********/
}

在这里插入图片描述

http://www.lryc.cn/news/378711.html

相关文章:

  • HTML5 新元素
  • 虹软ArcSoft—真正离线免费的人脸识别SDK
  • [环境配置]vscode通过ssh连接autodl进行项目开发
  • 2024中国宁波-东南亚职业教育产教协同发展校企对接会举办
  • Web前端、后端与建站:全方位解析四大基石、五大挑战、六大技术与七大策略
  • nginx出现504 Gateway Time-out错误的原因分析及解决
  • 基于STM32的智能插座项目
  • VR虚拟现实(Virtual Reality)
  • pywinauto入门指南:轻松掌握Windows GUI自动化
  • 分布式缓存框架Hazelcast与Java整合详解
  • ApplicationEventPublisher的使用、Spring事件发布
  • RFID优缺点和应用场景
  • 可信启动Trusted Board Boot
  • JVM的类加载机制
  • C++中的八大设计原则
  • 2024广东省职业技能大赛云计算赛项实战——Minio服务搭建
  • 【考研408计算机组成原理】数值表示和运算之快速数值转换
  • 理解 JTBD 框架和EJ 理念:深挖以用户为中心的设计
  • 数据提取与治理:企业实现数据驱动决策的必经之路
  • Avalonia:一个.NET跨平台UI框架
  • 海量数据处理——bitMap/BloomFilter、hash + 统计 + 堆/归并/快排
  • TrainingArguments、ModelArguments、DataArguments参数使用(@dataclass)
  • 基于jeecgboot-vue3的Flowable流程-自定义业务表单处理(一)支持同一个业务多个关联流程的选择支持
  • 解决数据丢失问题的MacOS 数据恢复方法
  • [ARM-2D 专题]3. ##运算符
  • 基于语音识别的智能电子病历(五)电子病历编辑器
  • 云计算技术高速发展,优势凸显
  • 文本三剑客其二
  • 【达梦数据库】typeorm+node.js+达梦数据库返回自增列值
  • 【ARMv8/ARMv9 硬件加速系列 2.1 -- ARM NEON 向量寄存器单个元素赋值】