网站首页 > 技术文章 正文
先出个小题目考考大家,给你任意一个日期,计算出当天对应的是周几。
想想看怎么实现?不要挠头,慢慢来哈。
先看一下上面提到的神奇代码实现的效果
验证一下
什么还要历史上的今天,来来来,继续
验证下
具体怎么实现的呢
不多废话直接上代码
#include <stdio.h>
#include <stdlib.h>
unsigned char week_check(int year,int month ,int day);
unsigned char* Tweek[7] = {"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
int main(int argc, char *argv[]) {
int year=0;
int mon=0;
int day=0;
unsigned char weekday=0;
while(1)
{
printf("请输入日期,如2021年3月1日请输入2021-3-1 \n\r");
scanf("%d-%d-%d",&year,&mon,&day);
weekday = week_check(year,mon,day);
printf("%d年%d月%d日是%s! \n\r\n\r", year,mon,day, Tweek[weekday]);
}
return 0;
}
unsigned char week_check(int year,int month ,int day)
{
int week=0x00;
if (month == 1 || month == 2)
{
year = year - 1;
month = month + 12;
}
week = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400 + 1) % 7;
return week;
}
怎么样是不是没有想象的那么复杂,只有简简单单的几行代码,很神奇吧。
不知道是哪位大神脑洞出奇想到了这个算法,你看懂了吗?可以交流下哈
猜你喜欢
- 2024-09-27 C语言备忘录 - 18. 文件基础(c语言备份文件)
- 2024-09-27 线性表顺序存储结构求集合的并,交,补,差(源代码附上 超详细)
- 2024-09-27 如何轻松使用 C 语言实现一个栈?(c语言如何建立一个栈)
- 2024-09-27 C语言学习:写一个文件的实例,详解(收藏)
- 2024-09-27 C语言学习过程代码记录(c语言代码例子)
- 2024-09-27 输出随机数字:C之法(c语言怎么随机输出字母)
- 2024-09-27 C++头文件和std命名空间(精辟)(c++头文件类型)
- 2024-09-27 【C高手秘籍】在处理复杂数据结构时,如何提高代码的运行效率?
- 2024-09-27 【C语言】(25)文件包含(c语言中,文件由什么组成)
- 2024-09-27 简单的加密文本手段,c语言新手也会
- 最近发表
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- c语言min函数头文件 (77)
- asynccallback (87)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 无效的列索引 (74)