由日期计算当天是星期几
题目
输入:一个合法的公历日期,格式为“XXXXXXXX”,分别代表年(4 位)、月(2 位)、日(2 位)。 输出:当日对应星期几的英语缩写(3 个字母,首字母大写)。
这里我学到了一个新知识点
基姆·拉尔森(Kim Larsen)公式
也被称为Zeller's congruence(泽勒公式),是一种用于计算给定日期的星期几的算法
该公式基于每个月的排列规律以及年份的编码,通过模运算和整除运算得到结果。具体来说,它通过将日期的年份、月份和日期进行一系列数学运算,并结合一些修正项,最终计算出星期几的值。
此外,还有一个有趣的公式,也是用于计算某一天是星期几的,公式如下:week = (d + 2m + 3(m + 1)/5 + y + y/4 - y/100 + y/400 + 1) % 7。其中y代表年,m代表月,d代表日。
至于原理:
基姆·拉尔森(Zeller)公式的原理基于朔望月的周期性现象。
朔望月是指从一次新月到下一次新月的时间间隔,通常为29.5天左右。根据这个周期,我们可以计算出任何一个日期是在一个月的第几天,从而推算出这一天是星期几。
具体来说,Zeller公式的计算方法如下:
- 将要计算的日期分别表示为年份(Y)、月份(M)和日(D)。
- 如果这个月是1月或2月,将年份减1,月份加上12,这样可以将这两个月看作上一年的13月和14月。
- 计算出一个系数C,公式为:C = Y / 100。
- 计算出一个系数G,公式为:G = 5 * C + C / 4。
- 计算出一个系数X,公式为:X = (D + 26 * (M + 1) / 10 + Y % 100 + Y % 100 / 4 + G) % 7。
- 根据X的值来确定这一天是星期几,其中0表示星期六,1表示星期日,2表示星期一,以此类推。
代码
#include <stdio.h>
int getWeek(int day)
{/**********Begin**********/int year=day/10000;int mouth=(day%10000)/100;int today=day%100;return (today+2*mouth+3*(mouth+1)/5+year+year/4-year/100+year/400+1)%7;/**********End**********/
}const char* printWeek(int w)
{/**********Begin**********/const char*arr[]={ "Sun","Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};return arr[w];/**********End**********/
}
int main()
{int date;scanf("%d",&date);int week = getWeek(date);const char * str=printWeek(week);printf("%s",str);return 0;
}
相关文章:
由日期计算当天是星期几
题目 输入:一个合法的公历日期,格式为“XXXXXXXX”,分别代表年(4 位)、月(2 位)、日(2 位)。 输出:当日对应星期几的英语缩写(3 个字母ÿ…...
springboot模板引擎
1.服务端渲染时相比与前后端分离开发 原理是 跳过前端这一层 直接到服务端 通过数据和模板 生成页面返回前端 springboot包含如下模板引擎 典型如thymeleaf 1>导入依赖 2>查看路径 模板页面在 public static final String DEFAULT_PREFIX “classpath:/templates/”; 即…...
如何判断从本机上传到服务器的文件数据内容是一致的?用md5加密算法!
问题场景 最近在帮导师做横向,我想把整个项目环境放到服务器中,需要把一个很大的数据文件传到服务器,传上去很方便,但是涉及到文件的压缩上传和服务器内解压环节,不是太确定文件在本机和服务器的数据内容是否一致。 解…...
Ubuntu 20.04 DNS解析原理, 解决resolv.conf被覆盖问题
------------------------------------------------------------------ author: hjjdebug date: 2023年 11月 09日 星期四 14:01:11 CST description: Ubuntu 20.04 DNS解析原理, 解决resolv.conf被覆盖问题 ----------------------------------------------------------------…...
探索经典算法:贪心、分治、动态规划等
1.贪心算法 贪心算法是一种常见的算法范式,通常在解决最优化问题中使用。 贪心算法是一种在每一步选择中都采取当前状态下最优决策的算法范式。其核心思想是选择每一步的最佳解决方案,以期望达到最终的全局最优解。这种算法特点在于只考虑局部最优解&am…...
【Linux】编译Linux内核
之所以编译内核,是因为gem5全系统仿真需要vmlinux文件,在此记录一下以备后面需要。 此过程编译之后会获得vmlinux和bzImage两个文件; 主要参考知行大佬的编译内核与gem5官方教程 文章目录 一、Linux源码下载二、安装编译依赖三、编译1. 内核编…...
网页判断版本更新
一、需求解析 为什么我会想到这个技术呢,是因为我有一次发现,我司的用户在使用网页的时候,经常会出现一个页面放很久,下班也不关这个页面,这样就会导致页面的代码长时间处于不更新的状态。 在使用到一个功能出了bug&a…...
ros1 基础学习08- 实现Server端自定义四 Topic模式控制海龟运动
一、服务模型 Server端本身是进行模拟海龟运动的命令端,它的实现是通过给海龟发送速度(Twist)的指令,来控制海龟运动(本身通过Topic实现)。 Client端相当于海龟运动的开关,其发布Request来控制…...
面试题之TCP粘包现象及其解决方法
计算机网络每层的基本单位:物理层(第一层):比特流;数据链路层(第二层):数据帧;网络层(第三层):数据包;传输层(…...
Word 插入的 Visio 图片显示为{EMBED Visio.Drawing.11} 解决方案
World中,如果我们插入了Visio图还用了Endnote, 就可能出现:{EMBED Visio.Drawing.11}问题 解决方案: 1.在相应的文字上右击,在出现的快捷菜单中单击“切换域代码”,一个一个的修复。 2.在菜单工具–>…...
Elasticsearch倒排索引、索引操作、映射管理
一、倒排索引 1、倒排索引是什么 倒排索引源于实际应用中需要根据属性的值来查找记录,这种索引表中的每一个项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而成为倒排索引。带有倒排索引的文件我们称之为倒…...
USEFUL PHRASES
THINGS YOU LIKE Q:Do you like social science? Yes, I can’t get enough of it.Yes, what I like most about it is it’s so interesting, for example, last week I read an article about solar panels and how we use them to protect the planet.Yes, I lo…...
【OpenCV】 拟合直线 与 霍夫直线 对比 , fitLine()与 HoughLinesP()对比
文章目录 1 fitLine 与 HoughLinesP 函数原型2 拟合直线 与 霍夫直线 对比拟合线和圆,是通过已知点拟合出对应的方程,拟合方法如最小二乘法,RANSAC算法等。如果拟合点的离散成都较高,拟合方法的正确选择,是提高识别精度的一大要点。 1 fitLine 与 HoughLinesP 函数原型 …...
Python与ArcGIS系列(六)查找和修复数据源
目录 0 简述1 查找丢失数据源2 findAndReplaceWorkspacePaths()方法修复丢失数据源3 replaceWorkspaces()方法修复丢失数据源4 replaceDataSource()修复单个图层和表对象0 简述 当对数据源进行移动、转换和删除时都会导致数据源丢失链接问题,无法正常显示地图数据。对于多个数…...
聊聊logback的TimeBasedRollingPolicy
序 本文主要研究一下logback的TimeBasedRollingPolicy TimeBasedRollingPolicy public class TimeBasedRollingPolicy<E> extends RollingPolicyBase implements TriggeringPolicy<E> {static final String FNP_NOT_SET "The FileNamePattern option must…...
numpy 基础使用
NumPy是Python中科学计算的基础包。它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变…...
sqlite3编译脚本
../configure --hostarm --buildx86 CC/opt/sdk/gcc-arm-8.3-arm-armv5t-linux-gnueabi/bin/arm-armv5t-linux-gnueabi-gcc --prefix/opt/sdk/gcc-arm-8.3-arm-armv5t-linux-gnueabi/arm-armv5t-linux-gnueabi/sysroot/usr...
环形链表解析(c语言)c语言版本!自我解析(看了必会)
目录 1.判断一个表是否是环形链表! 代码如下 解析如下 2.快指针的步数和慢指针的步数有什么影响(无图解析) 3.怎么找到环形链表的入环点 代码如下 解析如下 1.判断一个表是否是环形链表! 代码如下 bool hasCycle(struct L…...
科技云报道:数智化升级,如何跨越数字世界与实体产业的鸿沟?
科技云报道原创。 数智化是当下商业环境下最大的确定性。 2022年,中国数字经济规模达50.2万亿元,占国内生产总值比重提升至41.5%,数字经济成为推动经济发展的重要引擎。从小型创业公司到跨国巨头,数字化转型在企业发展历程中彰显…...
Rt-Thread 移植6--多线程(KF32)
6.1 就绪列表 6.1.1 线程就绪优先级组 线程优先级表的索引对应的线程的优先级。 为了快速的找到线程在线程优先级表的插入和移出的位置,RT-Thread专门设计了一个线程就绪优先级组。线程就绪优先组是一个32位的整型数,每一个位对应一个优先级ÿ…...
zgovps三网美国CMIN2网络VPS深度评测:性能与线路解析
1. zgovps三网美国CMIN2 VPS初体验 最近测试了一台zgovps新推出的洛杉矶机房VPS,主打三网CMIN2高端线路。刚拿到机器时,第一感觉是配置相当豪华——AMD EPYC 7C13处理器搭配NVMe SSD,1Gbps带宽,原生美国IP。这种配置在同等价位的V…...
零基础部署MinerU 2.5-1.2B镜像:轻松实现PDF高质量结构化提取
零基础部署MinerU 2.5-1.2B镜像:轻松实现PDF高质量结构化提取 1. 引言 1.1 为什么需要PDF结构化提取 在日常工作和学习中,PDF文档是最常见的信息载体之一。然而,当我们需要从PDF中提取内容时,经常会遇到以下问题: …...
Qwen3.5-9B可观测性:OpenTelemetry接入+请求链路追踪实践
Qwen3.5-9B可观测性:OpenTelemetry接入请求链路追踪实践 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,具备以下核心能力: 强逻辑推理:能够处理复杂的逻辑问题和推理任务代码生成:支持多种编程语言的…...
自题库-智能题库管理系统V1.0
自题库V1.0,是我个人根据自己的需求编程的一个款软件。原本打算是用别人既有的软件,总觉得存在问题不符合自己的需求,主要情况如下:1、做题界面不友善;2、不能自己新建题库;3、题目不能加载图片,…...
从SQL入门到性能调优进阶,精通SQL数据库实用教程
SQL进阶教程:从“会查表”到“调度数据洪流”的跃迁指南 SQL入门后,你已能在单张表里自如翻找、增删改写——但这只是拿到了数据库城邦的游客地图;进阶,是获得一张实时交通调度图:它显示哪条数据通道正拥堵、哪个查询…...
鲁班猫4 rk3588 IIC驱动0.96寸OLED,打造实时系统监控屏并实现后台守护
1. 鲁班猫4与OLED屏幕的硬件连接 鲁班猫4开发板搭载的RK3588芯片拥有丰富的接口资源,其中I2C总线特别适合连接小型外设。我手头这块0.96寸OLED屏幕分辨率128x64,通过4针I2C接口与开发板通信。实际接线时要注意:3号引脚接SCL时钟线,…...
从识别到创作:Hunyuan OCR与Z-Image-Turbo在NPU平台上的协同进化,重塑AI视觉工作流
1. 当OCR遇上图像生成:Hunyuan与Z-Image-Turbo的化学反应 第一次看到Hunyuan OCR和Z-Image-Turbo在同一个NPU平台上跑起来时,我正忙着处理一堆杂乱的产品说明书。这些文档有扫描件、手机拍摄的模糊照片,甚至还有手写批注的PDF。传统方案需要…...
diffusion model的基本概念
主要分为两个步骤:加密加噪声让原图变成模糊图(Forward Process),将模糊图去噪声,让其变成清晰图(Reverse Process) 先说Recerse Process的过程本质就是去除掉无用的像素,让有用的像素留下来(类似加密与解密…...
把近万个源文件喂给AI之前,我先做了一件事猛
插件化架构 v3 版本最大的变化是引入了模块化插件系统。此前版本中集成在核心包里的原生功能,现在被拆分成独立的插件。 每个插件都是一个独立的 Composer 包,包含 Swift 和 Kotlin 代码、权限清单以及原生依赖。开发者只需安装实际用到的插件࿰…...
别再只写ChatGPT提示词了!用LangChain和AutoGen给AI装上‘手和脚’的保姆级教程
从提示词到智能体:用LangChain和AutoGen构建能动手的AI助手 想象一下,你正在开发一个电商客服系统。传统的AI客服只能回答"退货政策是什么?"这样的问题,而真正的业务需求是:"帮我处理订单12345的退货&a…...
