【公式计算,给定年月日输出星期几】

博客记录了如何使用特定公式来计算1582年10月15日至9999年12月31日之间的日期所对应的星期几,这个公式帮助博主在NYOJ219题中实现了快速解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接: NYOJ219

【分析】

网上找了一个别人总结出来的公式用来计算给定年月日是星期几,再加上单字符快速输入输出时间跑到了第一。这里记录备忘。

【公式(输入年月日获得星期几)】 只能计算1582年10.15到9999年12.31日的日期

1582年的10月5日-14日这十天历史上不存在(为什么可以百度)

inline int get_date(int y, int m, int d){//获得星期几
	if(1 == m || 2 == m) y--,m+=12;//一定要加
	return ((d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)+1)%7;
}

 

【AC代码】436ms

/*
快速计算给定任意年月日是星期几
*/
#include <cstdio>
#include <cstri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值