当前位置: 首页 > 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 **********/
}

在这里插入图片描述

相关文章:

  • SAP AI Copilot Joule有可能是对SAP顾问的王炸
  • python pyautogui实现图片识别点击失败后重试
  • 【linux】操作系统使用wget下载网络文件,内核tcpv4部分运行日志
  • 【ClickHouse】副本、分片集群 (六)
  • 随机产生一些江河上的坐标数据
  • 秋招突击——6/17——复习{整理昨天的面试资料}——新作{删除链表倒数第n个节点}
  • Jmeter多个请求按照比例并发压测的几种方式
  • POI:接收上传上来的excel,解析并导入到数据库
  • Kafka中的时间轮算法
  • 2024广东省职业技能大赛云计算赛项实战——Ansible部署Zabbix
  • error: the type ‘const zjloc::<lambda(const Vec2i, const Vec2i)>’
  • JAVA NIO(二) Buffer和Channel
  • Elasticsearch:倒数排序融合 - Reciprocal rank fusion - 8.14
  • go的有栈和无栈
  • C#开发-集合使用和技巧(一)常用集合和方法介绍
  • Android优雅地处理按钮重复点击
  • extract-text-webpack-plugin用法
  • Invalidate和postInvalidate的区别
  • Javascript 原型链
  • Java多态
  • java中具有继承关系的类及其对象初始化顺序
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • PHP的Ev教程三(Periodic watcher)
  • Python打包系统简单入门
  • Redis的resp协议
  • Vue 重置组件到初始状态
  • Windows Containers 大冒险: 容器网络
  • 从0到1:PostCSS 插件开发最佳实践
  • 大整数乘法-表格法
  • 浮动相关
  • 构造函数(constructor)与原型链(prototype)关系
  • 开发基于以太坊智能合约的DApp
  • 你不可错过的前端面试题(一)
  • 说说动画卡顿的解决方案
  • 探索 JS 中的模块化
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 正则表达式
  • 树莓派用上kodexplorer也能玩成私有网盘
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)nginx 安装、启停
  • (C语言)fgets与fputs函数详解
  • (C语言)球球大作战
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (LLM) 很笨
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (动态规划)5. 最长回文子串 java解决
  • (独孤九剑)--文件系统
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (三十)Flask之wtforms库【剖析源码上篇】
  • (一)SvelteKit教程:hello world
  • (转)Sql Server 保留几位小数的两种做法
  • (转)菜鸟学数据库(三)——存储过程
  • .apk文件,IIS不支持下载解决
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全