计算从出生到现在活了多少天
2013-09-18 21:00
429 查看
C语言写的,switch计算部分采用了一本狂人C书的类似写法,感觉很有创意。
days.c
#include <stdio.h> typedef struct { int year; int month; int day; }Date; int date_minus(Date *now,Date *birth); int numOfYear(Date *date); int isLeapYear(int year); int main(void) { Date birth={1993,4,4}; Date now={2013,9,17}; printf("%d\n",date_minus(&now,&birth)); return 0; } int date_minus(Date *now,Date *birth) { int days; int year; if(now->year==birth->year) //同一年的情况 return numOfYear(now)-numOfYear(birth)+1; else if(now->year<birth->year) return -1; //出生年的后几天 days=(isLeapYear(birth->year)?366:365)-numOfYear(birth)+1; //中间年 for(year=birth->year+1;year < now->year;year++) days+=isLeapYear(year)?366:365; //今年的前几天 return days+numOfYear(now); } //一年中的第几天 int numOfYear(Date *date) { int days=date->day; switch(date->month-1) { case 11:days+=30; case 10:days+=31; case 9:days+=30; case 8:days+=31; case 7:days+=31; case 6:days+=30; case 5:days+=31; case 4:days+=30; case 3:days+=31; case 2:days+=isLeapYear(date->year) ? 29 :28; case 1:days+=31; return days; } return -1; } int isLeapYear(int year) { return (year%100 && year%4==0 )|| year%400==0; }
days.c
相关文章推荐
- 蓝桥杯 C++ 计算出生到现在已经过了多少天
- 计算一个人从出生到现在活了多少天
- Java:计算出生到现在多少天代码
- 、输入某人出生日期(以字符串方式输入,如1987-4-1)使用DateTime和TimeSpan类,(1)计算其人的年龄;(2)计算从现在到其60周岁期间,总共多少天。
- 、输入某人出生日期(以字符串方式输入,如1987-4-1)使用DateTime和TimeSpan类,(1)计算其人的年龄;(2)计算从现在到其60周岁期间,总共多少天。
- 已知参考日期和过了多少天,计算现在的日期
- VBScript 算一算你从出生到现在共计多少天
- 一个刚出生的奶牛,4年生一只,以后每年生一只,现在有一只刚出生的奶牛,问20年以后一共多少只奶牛?
- 计算现在到1970年过了多少秒 mktime函数 自己写的 ^_^
- JavaScript基础 计算现在时间 距离 过去一时间 相差多少天
- CSU 1021 从m个不同元素中取出n (n ≤ m)个元素的所有组合的个数,叫做从m个不同元素中取出n个元素的组合数。组合数的计算公式如下: C(m, n) = m!/((m - n)!n!) 现在请问,如果将组合数C(m, n)写成二进制数,请问转这个二进制数末尾有多少个零。
- 计算某人已经出生了多少天?
- 出生到现在多少天
- js 计算过去和未来的时间距离现在多少天?
- java的系统时间,怎么计算从现在到凌晨还剩下多少时间?
- JavaScript基础 计算现在时间 距离 过去一时间 相差多少天
- iOS 计算某个时间到现在是多少月/天/时的代码
- java小案例:计算你现在到出生的天数
- JavaScript基础 计算现在时间 距离 未来一时间 相差多少天
- 【c语言】 假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比