已知年月日利用公式求星期几模板

2023-11-08

在本文中,我们将使用C语言实现基于已知的年月日计算星期几的公式。这个公式被称为“蔡勒公式”(Zeller’s Congruence),是一种快速求解星期几的方法。

代码分析

  1. 首先,我们需要对月份进行调整。如果月份小于3(即1月或2月),则将其视为上一年的13月或14月。
  2. 计算世纪(c)和年份的后两位数(y)。
  3. 将计算出的星期几(W)结果对7取模,以得到0-6之间的数字,表示星期日到星期六。
  4. 应用蔡勒公式计算星期几,公式如下:

W = [C / 4] - 2C + y + [y / 4] + [26(m + 1) / 10] + d - 1(其中[ ]为取整符号)

  1. w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六

  2. c:世纪-1(前两位数)

  3. y:年(后两位数)

  4. m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)

  5. d:日 [ ]代表取整,即只要整数部分

C语言实现

以下是使用C语言实现蔡勒公式的示例:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int kk(int year,int month,int day)//根据日期判断出星期几
{

//	公式:W=[C/4]-2C+y+[y/4]+[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:日  [ ]代表取整,即只要整数部分
    if(month==1||month==2)
    {
        month+=12;
        year--;
    }
    int c=year/100;
    int y=year%100;
    int m=month;
    int d=day;
    int W=c/4-2*c+y+y/4+26*(m+1)/10+d-1;
    if(W<0)
        return (W+(-W/7+1)*7)%7;
	W=W%7;
    if (W == 0 )    //星期日不作为一周的第一天 
        W= 7;  
    return W;
}
int main()
{
	int y,m,d,t,w;
	cin>>t;
	while(t--)
	{
		cin>>y>>m>>d;
		cout<<kk(y,m,d)<<endl;	
	}
	
	
	return 0;
}

注意事项

  1. 请注意,在计算时,我们需要使用整数除法(取整)。在C语言中,整数除法会自动舍去小数部分。
  2. 在实际应用中,可能需要将数字结果(0-6)转换为实际的星期名称(如“星期日”、“星期一”等)。

总之,蔡勒公式是一种非常有效的计算星期几的方法。使用C语言实现这个公式可以帮助我们快速计算给定日期的星期几。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

已知年月日利用公式求星期几模板 的相关文章

  • 有没有比这更快的方法来查找目录和所有子目录中的所有文件?

    我正在编写一个程序 需要在目录及其所有子目录中搜索具有特定扩展名的文件 这将在本地驱动器和网络驱动器上使用 因此性能是一个问题 这是我现在使用的递归方法 private void GetFileList string fileSearchP
  • 在 Windows Phone 上启动 pdf 文件时出现 System.Runtime.InteropServices.COMException

    我正在尝试使用我之前在另一个应用程序上使用过的以下工作代码打开 pdf 文件 但这一次 当流程到达此行时 我收到 System Runtime InteropServices COMException Windows System Laun
  • 使用 C# 使用应用程序密码登录 Office 365 SMTP

    在我们的 Office 365 公司帐户中实施两步身份验证之前 我的 C WPF 程序已成功进行身份验证并发送邮件 我使用了 SmtpClient 库 但现在我必须找到另一个解决方案 因为它不再起作用 我找不到任何使用 O365 应用程序密
  • 对数字进行向上和向下舍入 C++

    我试图让我的程序分别向上和向下舍入数字 例如 如果数字是3 6 我的程序应该四舍五入最接近的数字 4 如果该数字是3 4 它将向下舍入为 3 我尝试使用ceil库获取 3 个项目的平均值 results ceil marks1 marks2
  • 阅读 Stack Overflow RSS 源

    我正在尝试获取未回答问题的列表the feed https stackoverflow com feeds 但我在阅读时遇到困难 const string RECENT QUESTIONS https stackoverflow com f
  • C中有const吗?

    这个问题可能很幼稚 但是 有没有constC 中的关键字 从哪个版本开始 之间有任何语义和 或句法差异吗const在 C 和 C 中 C 和 C 之间在语法上没有差异const关键字 除了一个相当晦涩的关键字 在 C 中 自 C99 起 您
  • glDrawElements 只绘制半个四边形

    这是我的功能 void Object draw2 if mIsInitialised return Tell OpenGL about our vertex and normal data glEnableClientState GL VE
  • 防止复制构造和返回值引用的分配

    如果我有一个函数返回对类实例的引用 但我无法控制其源 比如说list
  • 如何检测斑点并将其裁剪成 png 文件?

    我一直在开发一个网络应用程序 我陷入了一个有问题的问题 我会尝试解释我想要做什么 在这里您看到第一个大图像 其中有绿色形状 我想要做的是将这些形状裁剪成不同的 png 文件 并使它们的背景透明 就像大图像下面的示例裁剪图像一样 第一张图像将
  • 捕获当前正在播放的声音

    是否可以捕获计算机上当前播放的声音 如果能够将其保存为 mp3 就好了 但我认为这样做会存在一些法律问题 所以 wav 也可以 我环顾四周 有人建议使用虚拟音频线之类的东西 在 C 中捕获声音输出 https stackoverflow c
  • 推送 Lua 表

    我已经创建了一个Lua表C 但我不知道如何将该表推入堆栈顶部 以便我可以将其传递给 Lua 函数 有谁知道如何做到这一点 这是我当前的代码 lua createtable state libraries size 0 int table i
  • 在可观察项目生成时对其进行处理

    我有一个IObservable它会生成一次性物品 并且在其生命周期内可能会生成无限数量的物品 因此 我想在每次生成新项目时处理最后一个项目 因此Using http reactivex io documentation operators
  • 使用 AutoMapper 进行 LINQ GroupBy 聚合

    试图让查询工作 但老实说不确定如何 或者是否可能 进行它 因为我尝试过的一切都不起作用 共查询6个表 Person PersonVote PersonCategory Category City FirstAdminDivision Per
  • 编写专门用于类及其子类的函数模板

    我正在尝试编写一个函数模板 一个版本应该用于不满足另一版本标准的所有类型 当参数是给定类的基类或该类本身时 应使用另一个版本 我尝试过超载Base 但是当类派生自Base 他们使用通用的 而不是特定的 我也尝试过这种 SFINAE 方法 s
  • 便携式终端

    有没有办法根据所使用的操作系统自动使用正确的 EOL 字符 我在想类似的事情std eol 我知道使用预处理器指令非常容易 但很好奇它是否已经可用 我感兴趣的是 我的应用程序中通常有一些消息 稍后我会将这些消息组合成一个字符串 并且我希望将
  • C# - 为什么我需要初始化 [Out] 参数

    我有几个从本机 dll 导入的方法 使用以下语法 internal static class DllClass DllImport Example dll EntryPoint ExampleFunction public static e
  • 有没有办法让 VS2010 在我的方法中扩展或收缩 try 块?

    我的代码有很多 try catch finally 块 与我在 VS2010 中的方法不同 除了添加区域之外 我无法在开发时扩展或收缩这些区域来隐藏内容 try vm R vm Qu vm T vm D vm Fil vm Type vm
  • 从 C# 中的 .NET SecureString 读取单个字符?

    WPF 的PasswordBox 返回一个SecureString 它对窥探者隐藏密码 问题是你最终必须获得密码的值 而我在网上找到的建议都涉及将值复制到字符串中 这会让你回到窥探者的问题 IntPtr bstr Marshal Secur
  • 当我读取 500MB FileStream 时出现 OutOfMemoryException

    我使用 Filestream 读取大文件 gt 500 MB 但出现 OutOfMemoryException 任何有关它的解决方案 我的代码是 using var fs3 new FileStream filePath2 FileMode
  • 在 C# 中读取/写入命令行程序

    我正在尝试与 C 的命令行程序进行对话 它是一个情绪分析器 它的工作原理如下 CMD gt java jar analyser jar gt Starting analyser 这是我想从我的 C 程序插入内容的地方 例如 I love y

随机推荐

  • 收藏学习!15个使用率超高的Python库

    今天给大家分享最近一年内PyPI上下载量最高的Python包 现在我们来看看这些包的作用 他们之间的关系 以及为什么如此流行 1 Urllib3 8 93亿次下载 Urllib3 是 Python 的 HTTP 客户端 它提供了许多 Pyt
  • Keil 5出现Error: L6218E: Undefined symbol解决方法

    目录 1 找到相关未定义函数 选中然后右击 GO TO Reference To ADC Cmd 2 发现该函数在stm32f10x adc h中 3 可以看到右边fwlib里没有相应 c文件 我们添加上 4 右击 选择manage pro
  • HTML怎么插入一段代码

    之前学习了点HTML的基础知识 在工作中给别人发邮件的时候 使用HTML插入超链接 这回需要插入一段代码块 语法 pre pre 将需要传入的代码放在 pre 和 pre 之间就可以了 浏览器自动识别 示例 p 这是一段代码块 p pre
  • linux查看内存占用情况(top、free、ps)

    top命令 top命令是Linux下常用的性能分析工具 能够实时显示系统中各个进程的资源占用状况 类似于Windows的任务管理器 运行 top 命令后 CPU 使用状态会以全屏的方式显示 并且会处在对话的模式 用基于 top 的命令 可以
  • Embedded Linux Conference Europe schedule posted

    From http linuxgizmos com embedded linux conference europe schedule posted The Linux Foundation posted a schedule for Li
  • 2023 年程序员的最佳工作角色

    当今价值数十亿美元的计算机编程市场正受到下一代应用程序和产品的日益普及的推动 例如自动编码 统计计算 数据分析 ML 机器学习 和 AI 人工智能 根据MarketsandMarkets的一项研究 到11年 全球CAC 计算机辅助编码 行业
  • Redis三种集群架构

    一 主从架构 搭建主从结构 从节点配置步骤 1 复制一份redis conf文件 2 将相关配置修改为如下值 port 6380 pidfile var run redis 6380 pid 把pid进程号写入pidfile配置的文件 lo
  • 统计学第九周:参数估计python实现

    统计学第九周 参数估计复习 参数估计 根据从总体中随机取样获得样本 根据取样样本来估计总体分布中参数的过程 方法 估计形式上分 点估计与区间估计 估计的方法有矩法估计 最小二乘法估计 似然估计 贝叶斯估计等等 问题一般有 未知参数的估计量
  • 期货方法(期货方法很简单 只用MACD)

    期货法 在期货市场上 95 的人都是赔钱的 对于期货市场的新手来说 一定要有一个清晰的认识 95 的数字告诉我们什么 它只是告诉我们 在获得稳定的利润之前 我们不应该投入太多的钱 对于初学者来说 投入的钱越多 损失的钱就越多 所以一定要控制
  • 渗透之Aircrack—wifi破解

    环境 kali 工具使用 无线网卡 型号雷凌RT3070L 注意型号选择的使用 不同型号可能导致kali无法识别 步骤总结 1 kali连接外接无线网卡 2 ifconfig查看网卡信息 新出现的wlan0网卡 3 开启网卡监听模式 air
  • 实践积累:用Vue3简单写一个单行横向滚动组件

    目录 效果图 需求分析 实现分析 样式展示分析 变量分析 方法分析 实现步骤 1 实现模板 2 实现css 3 首先获取list 4 页面挂载后监听groupBoxRef的scroll事件并获取当前的滚动位置 5 计算展示的宽度显隐箭头 当
  • 讲透JVM类加载机制,向高手进阶!

    目录 前言 JVM在什么情况下会加载一个类 从实用角度出发 来看看验证 准备和初始化的过程 核心阶段 初始化 类加载器和双亲委派机制 1 前言 先来看一下JVM整体的一个运行原理 我们首先从 java 代码文件 编译成 class 字节码文
  • 运放的虚短和虚断以及分类

    放大器定义 能实现信号 功率放大的器件 称为放大器 英文为Amplifier 以放大器为核心 能实现放大功能的电路组合 称为放大电路 放大器的种类 全部放大器被分为三种 晶体管放大器 运算放大器和功能放大器 晶体管及其放大电路的复杂 从静态
  • 哈希表(散列表)原理详解

    什么是哈希表 哈希表 Hash table 也叫散列表 是根据关键码值 Key value 而直接进行访问的数据结构 也就是说 它通过把关键码值映射到表中一个位置来访问记录 以加快查找的速度 这个映射函数叫做散列函数 存放记录的数组叫做散列
  • 华中科技大学操作系统实验课 实验四

    一 实验目的 1 理解设备是文件的概念 2 掌握Linux模块 驱动的概念和编程流程 3 Windows Linux下掌握文件读写基本操作 二 实验内容 1 编写一个Linux内核模块 并完成模块的安装 卸载等操作 2 编写Linux驱动程
  • MySQL多表查询(8.0)

    文章目录 多表查询 1 多表关系 1 1 一对多 1 2 多对多 1 3 一对一 2 多表查询概述 2 1 数据准备 2 2 概述 2 3 分类 3 内连接 4 外连接 5 自连接 5 1 自连接查询 5 2 联合查询 6 子查询 6 1
  • chatGLM-Windows环境安装

    Windows系统下环境安装 一 概要 不同安装方式 安装python 安装Nvidia驱动 安装cuda与cuddn 安装PyTorch与TensorFlow 二 安装文件 百度网盘链接 https pan baidu com s 1lb
  • Prometheus部分监控项

    Metrics Chinese explanation English explanation node arp entries device的ARP表项 HELP node arp entries ARP entries by devic
  • Kaldi 入门详解

    train mono sh 是音素训练脚本 下面详细介绍各个功能 这部分是训练用参数 调用mono sh时可以通过 name value的方式改变这些参数 nj 4 并行个数 cmd run pl 处理程序 scale opts trans
  • 已知年月日利用公式求星期几模板

    在本文中 我们将使用C语言实现基于已知的年月日计算星期几的公式 这个公式被称为 蔡勒公式 Zeller s Congruence 是一种快速求解星期几的方法 代码分析 首先 我们需要对月份进行调整 如果月份小于3 即1月或2月 则将其视为上