- 🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)
- 🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd
- 🌐系列专栏:C语言编程
- 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家三连支持一下呀!!! 👉关注✨、点赞👍、收藏📂、评论。
- 如需转载请参考转载须知!!
简介
Tomohiko Sakamoto 算法,用于确定某个日期是星期几。
实现
第一个版本
- 代码实现
int dow(int y, int m, int d) {
static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
y -= m < 3;
return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
}
- 亮点:静态数组、y -= m < 3及后面的算法;
第二个版本
- 代码实现
int dow(int y, int m, int d)
{
y-=m<3;
return(y+y/4-y/100+y/400+"-bed=pen+mad."[m]+d)%7;
}
- 亮点:本质和上一个一样,主要亮点在于“-bed=pen+mad.”。
限制
- 由于目前使用的历法并不是从1年1月1日开始使用的,而是从1582年年底才开始使用的格利戈里历,并且在1582年不存在10月5日到10月14日这10天,因此此算法只能准确计算1582年10月15日开始之后的星期数。
如本文对你有些许帮助,欢迎大佬支持我一下,您的支持是我持续创作的不竭动力
支持我的方式