C/C++ 根据年月日计算星期几——蔡勒公式篇

c++ 计算某个日期是星期几,判断某年某月一号是星期几 第一种方法 基姆拉尔森计算公式: 基姆拉尔森计算公式 W = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) mod 7 http://baike.baidu.com/view/739374.htm #include using namespace std; void CaculateWeekDay(int y, 阅读详情

转载http://blog.youkuaiyun.com/areskris/article/details/8661983

蔡勒公式  蔡勒(Zeller)公式:是一个计算星期的公式。
随便给一个日期,就能用这个公式推算出是星期几。
蔡勒公式如下:
W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1
或者是:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义如下:
w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六
c:世纪-1(前两位数)
y:年(后两位数)
m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)
d:日  [ ]代表取整,即只要整数部分。
下面以中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下:
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
 =49+[49/4]+[20/4]-2×20+[26×(10+1)/10]+1-1
 =49+[12.25]+5-40+[28.6]
 =49+12+5-40+28
 =54 (除以7余5)
即2049年10月1日(100周年国庆)是星期五。
再比如计算2013年3月7日,过程如下:
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
 =13+[13/4]+[20/4]-2*20+[26*(3+1)/10]+7-1
 =-3 (除以7余4,注意对负数的取模运算!)

[cpp]  view plain copy
  1. int ReturnWeekDay( unsigned int iYear, unsigned int iMonth, unsigned int iDay )  
  2. {  
  3.     int iWeek = 0;  
  4.     unsigned int y = 0, c = 0, m = 0, d = 0;  
  5.   
  6.     if ( iMonth == 1 || iMonth == 2 )  
  7.     {  
  8.         c = ( iYear - 1 ) / 100;  
  9.         y = ( iYear - 1 ) % 100;  
  10.         m = iMonth + 12;  
  11.         d = iDay;  
  12.     }  
  13.     else  
  14.     {  
  15.         c = iYear / 100;  
  16.         y = iYear % 100;  
  17.         m = iMonth;  
  18.         d = iDay;  
  19.     }  
  20.       
  21.     iWeek = y + y / 4 + c / 4 - 2 * c + 26 * ( m + 1 ) / 10 + d - 1;    //蔡勒公式  
  22.     iWeek = iWeek >= 0 ? ( iWeek % 7 ) : ( iWeek % 7 + 7 );    //iWeek为负时取模  
  23.     if ( iWeek == 0 )    //星期日不作为一周的第一天  
  24.     {  
  25.         iWeek = 7;  
  26.     }  
  27.   
  28.     return iWeek;  
  29. }  
C/C++日历系统项目实战:从日期计算到模块化设计 日期计算是编程中的基础且高频应用场景,涉及时间处理、逻辑判断与数据结构等核心概念。其原理通常基于公历规则,如闰年判断和月份天数映射,并通过蔡勒公式等算法高效计算星期数。掌握日期计算技术对于开发日程管理、数据分析、金融系统等应用具有重要价值,能有效提升程序的准确性和健壮性。本文聚焦于C/C++语言环境,通过构建一个完整的日历系统项目,深入解析了日期合法性验证、月历/年历格式化输出等关键技术点,并提供了详细的模块化设计思路与代码实现,帮助开发者巩固基础语法,提升工程实践能力。项目中涉及的蔡勒公式和模块化设计是解 阅读详情

相关推荐

STM32F4系列HAL库配置定时器实验——输入捕获

STM32F4系列HAL库配置定时器实验——输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率。我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数模式, 图中 t1~t2 时间,就是我们需要测量的高电平时间。测量方法如下:首先设置定时器通道 x 为 上升沿捕获,这样,t1 时刻,就会捕获到当前的 CNT 值,然后立即清零 CNT,并设置通道 x为下降沿捕获,这样到 t2 时刻,又会发生捕获事件,得到此时的 CNT 值,记为 CCRx2。这样,根据定时器

azs0504的博客 9285

C语言——蔡勒(Zeller)公式的使用

C语言——蔡勒公式的使用 蔡勒公式简介: 蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几。 计算公式: 核心公式: w=(y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1)%7 符号 说明 w 星期,0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c 年份前两位 y 年(...

Sunrise的博客 9437

基于淘宝商城用户购物行为数据分析系统

本文使用HIve+superset技术对阿里云天池提供的淘宝用户购物数据进行处理分析,得到有价值的信息并对平台提出有建设性意义的意见。

m0_51388399的博客 2818

蔡勒公式

一、蔡勒公式 1、1582年10月4日之后:w=y1+(y1/4)+(c/4)-2*c+(26*(m+1)/10)+d-1;        1582年10月4日以及之前:w=y1+y/4+c/4-2*c+13*(m+1)/5+d+2;         输出:(w%7+7)%7     (为了确保结果为正数) 说明: w为星期,    0-星期日,1-星期一,..........6-星期六 ...

Simple的博客 1万+

VS2019配置Qt5.14.2开发环境全流程(含MSVC2017 64-bit选择指南)

本文详细介绍了在VS2019中配置Qt5.14.2开发环境的完整流程,特别针对MSVC2017 64-bit编译器的选择提供了专业建议。从环境准备、Qt安装配置到VS2019集成设置,逐步指导开发者完成开发环境的搭建,并提供了常见问题的解决方案和高级优化技巧,帮助开发者高效进行Qt开发。

weixin_29243279的博客 511

Windows系统下搭建MPI(并行计算)环境

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!                 W

weixin_43417960的博客 5752

蔡勒(Zeller)公式理解Get(√)

Preface 偶然做到日期相关题目,了解到Zeller公式。不甘心停留在使用阶段,便想掌握其推导过程。 只适用于格利戈里历法,也就是现今的公历。 1. Zeller公式 标准形式 计算1582年10月4日或之前日期 (罗马教皇决定在1582年10月4日后使用格利戈里历法) w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四...

weixin_42244691的博客 2563

从零开始搭建多旋翼无人机:飞控系统配置全攻略(含IMU校准技巧)

本文详细介绍了从零开始搭建多旋翼无人机的飞控系统配置全流程,重点解析了IMU校准技巧。涵盖飞控硬件选型、IMU校准(加速度计、陀螺仪、磁力计)、GPS与罗盘集成方案、飞行模式配置策略及实战故障排查手册,帮助DIY爱好者提升无人机飞行稳定性与安全性。

beta5的博客 796

蔡勒公式(根据日期计算出周几)

蔡勒公式(根据日期计算出周几)

李典金 2951

Android 车载应用之快速入门

车载 Android 系统也被称为 Android Automotive OS,是对原始 Android 系统的一个功能扩充版本。与手机系统一样,Android Automotive OS 源代码完全开放,第三方供应商和汽车制造商可以官方源码的基础上自行开发和拓展,无论是编程语言还是各项接口,都与 Android 系统保持了一致。

xiangzhihong8的专栏 1110

TI Sitara系列AM64x开发板(双核ARM Cortex-A53)软硬件规格书

创龙科技TL64x-EVM是一款基于TI Sitara系列AM64x双核ARM Cortex-A53 + 单/四核Cortex-R5F + 单核Cortex-M4F多核处理器设计的高性能评估板,由核心板和评估底板组成。评估板接口资源丰富,引出5x Ethernet(两路支持TSN)、2x CAN-FD、多路UART、多路DI/DO、GPMC、PCIe、USB等接口,板载WIFI模块,支持4G/5G模块、NVME硬盘,可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。

创龙,嵌入式一体化解决方案商 727

蔡勒星期算法 c语言,C/C++根据年月日计算星期几(蔡勒公式篇)

蔡勒公式 蔡勒(Zeller)公式:是一个计算星期的公式。随便给一个日期,就能用这个公式推算出是星期几。蔡勒公式如下:W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1或者是:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下:w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,...

weixin_31833795的博客 1567

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

蔡勒公式 java,C/C++根据年月日计算星期几(蔡勒公式篇)

蔡勒公式 蔡勒(Zeller)公式:是一个计算星期的公式。随便给一个日期,就能用这个公式推算出是星期几。蔡勒公式如下:W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1或者是:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下:w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,...

weixin_39634898的博客 518

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

计算星期c语言编码,C/C++计算星期几 C/C++根据年月日计算星期几(蔡勒公式篇)...

想了解C/C++根据年月日计算星期几(蔡勒公式篇)的相关内容吗,AresKris在本文为您仔细讲解C/C++计算星期几的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:c++计算星期几的公式,c语言输入年月日计算星期几,c语言蔡勒公式,下面大家一起来学习吧。蔡勒公式 蔡勒(Zeller)公式:是一个计算星期的公式。随便给一个日期,就能用这个公式推算出是星期几。蔡勒公式如下:W = [C...

weixin_39922476的博客 1373

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C语言——蔡勒(Zeller)公式:快速将任意日期转换为星期数

这篇博客讲述了如何使用蔡勒(Zeller)公式,来快速将任意日期转换为星期数。

qq_45902301的博客 8563

给定日期(年月日)求星期几(蔡勒公式?没那么简单!)

前言 前几日做到一个机试题,给出一个日期,让你输出那天是星期几,这种题无疑两种思路:一是从今天(前提是知道今天日期及周几)开始推算,计算今天与目标日期差的天数再取模运算,考虑到还要考虑闰年什么的,立即推->用下一种方法;直接利用一个什么公式来计算(问题是这样算起来容易,但公式不好记啊啊啊)。 蔡勒公式 w=(C/4−2C+Y+Y/4+13(M+1)/5+D−1)%7w =(C/4-2C+Y+...

wayne17的博客 6428

知道年月日就可以计算那一天是星期几(What day is today?)

公式 W =〔 [c/4] - 2c + y + [y/4] + [13 * (m+1) / 5] + d - 1 〕% 7 (或者是:w= 〔y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 〕% 7) 若要计算的日期是在1582年10月4日或之前,公式则为 w=y+[y/4]+[c/4]-2c+[13(m+1)/5]+d+2 以1572年9月3日为例: 1572年

吾本高富帅 3253

[C]利用蔡勒公式简单实现万年历

测试代码 #include<stdio.h> /** 蔡勒公式 0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 **/ int getDayOfWeek(int year,int month,int day){ if...

chuichansheng7987的博客 312

c语言任意年月日是星期几,求C语言程序,任意输入一个年月日,要求输出是星期几,要在Visual  C++6.0的环境里运行,谢谢啦...

满意答案aaaqe2013.05.13采纳率:51%等级:13已帮助:7216人#includeint isLeapYear(int year){if( ( year%4==0 && year%100!=0) || (year%100==0) && ( year%3200!=0 ) )return 1;else return 0;}int main(){lo...

weixin_30767365的博客 667

蔡勒公式求任意日期是星期几

原理不谈,直接百度“蔡勒公式”,本文直接谈代码实现(c++) 传入年月日,返回的就是星期几了 int Day(int year, int month, int day){ int ret = 0; int c, y, m, d; if(month &lt;= 2){ c = ( year - 1 ) / 100; y = ( year - 1 ) % 100; m = mo...

swunHJ的博客 420

计算出某年某月某日是星期几 蔡勒公式

#include&lt;iostream&gt; usingnamespacestd; int main(){ int year,month,day; while(cin&gt;&gt;year&gt;&gt;month&gt;&gt;day){ if(month&lt;3){ year-=1; month+=12; } charb[7][10]={"sunday","monday",&quot

PinkAir的博客 1045
上一篇: C++ / vs 如何生成自己的静态库(lib)文件
下一篇: 距离变换
Savitch
博客等级 码龄16年 84粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值