C语言实现某年某月某日是某年的第几天
2016-02-23 20:46
267 查看
看到这个标题,想实现这样的功能其实挺简单的,用C语言的switch语句加上闰年,平年条件的判断,再加上一定的逻辑可以轻松实现这样的函数,在linux内核中,存在判断闰年平年的接口,我将它移植出来后,写成一个宏,供计算天数的函数来调用,看看是不是可以实现,来,上代码:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/899229cfab2c02d614490485cabb781b.gif)
我们可以看到,今天是2016年2月23日,是2016年的第54天!时间过得好快呀,两个月就快过去了噢,希望各位同行好好珍惜时间,有时间多多学习技术知识!
![](https://oscdn.geek-share.com/Uploads/Images/Content/201708/08cf5a7d5cb73477071cbcb2272311a1.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/899229cfab2c02d614490485cabb781b.gif)
#include<stdio.h> #include<stdlib.h> enum { zero = 0 ,NUM_TWO = 2, NUM_THR = 13 ,tw_e = 28 , tw_n = 29 ,st_z = 30 , st_o = 31 , }; #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0)) //判断是闰年还是平年 static int years[NUM_TWO][NUM_THR]= { {zero,st_o,tw_e,st_o,st_z,st_o, \ st_z,st_o,st_o,st_z,st_o,st_z,st_o}, {zero,st_o,tw_n,st_o,st_z,st_o, \ st_z,st_o,st_o,st_z,st_o,st_z,st_o} }; static int Count(int year,int month,int day) ; int main() { int year,month,day,m; int day_num ; printf("please input (year-month-day)\n"); scanf("%d-%d-%d",&year,&month,&day); //按上面说的格式输入 day_num = Count(year,month,day); printf("day_num:%d\n",day_num); return 0; } static int Count(int year,int month,int day) { int flag = 0 ; static int i ; if(isleap(year)) //判断是闰年还是平年 flag=1; //是闰年就把标志置一 for(i=0;i<month;i++) day+=years[flag][i]; //然后对应数组的行数来选择相应的天数进行累加 return day ; //累加的结果返回,供主函数调用 }运行结果:
我们可以看到,今天是2016年2月23日,是2016年的第54天!时间过得好快呀,两个月就快过去了噢,希望各位同行好好珍惜时间,有时间多多学习技术知识!
![](https://oscdn.geek-share.com/Uploads/Images/Content/201708/08cf5a7d5cb73477071cbcb2272311a1.gif)
相关文章推荐
- C语言实现某年某月某日是某年的第几天
- YTU 2443: C++习题 复数类--重载运算符3+
- YTU 2442: C++习题 矩阵求和--重载运算符
- YTU 2441: C++习题 复数类--重载运算符2+
- C语言可变参实现参数累加返回
- C语言可变参实现参数累加返回
- 关于C和C++一些大神们的讨论
- 深入浅出C++构造函数、析构函数、深浅拷贝的相关内容
- C语言可变参实现参数累加返回
- 关于C和C++一些大神们的讨论
- C++之路进阶——最大权闭合子图(最大获利)
- Mutable关键字
- 算法基本知识学习之排序算法
- YTU 2440: C++习题 复数类--重载运算符+,-,*,/
- YTU 2439: C++习题 复数类--重载运算符+
- C++之路进阶——最大流(紧急疏散)
- YTU 2437: C++ 习题 比较大小-类模板
- YTU 2436: C++ 习题 输出日期时间--友元类
- YTU 2435: C++ 习题 输出日期时间--友元函数
- Explicit关键字