• 计算从出生到现在活了多少天


    C语言写的,switch计算部分采用了一本狂人C书的类似写法,感觉很有创意。

     1 #include <stdio.h>
     2 
     3 
     4 typedef struct
     5 {
     6     int year;
     7     int month;
     8     int day;
     9 }Date;
    10 
    11 int date_minus(Date *now,Date *birth);
    12 int numOfYear(Date *date);
    13 int isLeapYear(int year);
    14 
    15 int main(void)
    16 {
    17     Date birth={1993,4,4};
    18     Date now={2013,9,17};
    19     printf("%d
    ",date_minus(&now,&birth));
    20     return 0;
    21 }
    22 
    23 int date_minus(Date *now,Date *birth)
    24 {
    25     
    26     int days;
    27     int year;
    28 
    29     if(now->year==birth->year)    //同一年的情况
    30         return numOfYear(now)-numOfYear(birth)+1;
    31     else if(now->year<birth->year)
    32         return -1;
    33 
    34     //出生年的后几天
    35     days=(isLeapYear(birth->year)?366:365)-numOfYear(birth)+1;
    36 
    37     //中间年
    38     for(year=birth->year+1;year < now->year;year++)
    39         days+=isLeapYear(year)?366:365;
    40 
    41     //今年的前几天
    42     return days+numOfYear(now);
    43 }
    44 
    45 //一年中的第几天
    46 int numOfYear(Date *date)
    47 {
    48     int days=date->day;
    49     switch(date->month-1)
    50     {
    51     case 11:days+=30;
    52     case 10:days+=31;
    53     case 9:days+=30;
    54     case 8:days+=31;
    55     case 7:days+=31;
    56     case 6:days+=30;
    57     case 5:days+=31;
    58     case 4:days+=30;
    59     case 3:days+=31;
    60     case 2:days+=isLeapYear(date->year) ? 29 :28;
    61     case 1:days+=31;
    62         return days;
    63     }
    64     return -1;
    65 }
    66 
    67 int isLeapYear(int year)
    68 {
    69     return (year%100 && year%4==0 )|| year%400==0;
    70 }
    days.c
  • 相关阅读:
    Makefile的常用技术总结
    NPOI 插入行[转]
    LINQ语句中的.AsEnumerable() 和 .AsQueryable()的区别 [转]
    Using Google Public DNS[Google公共DNS服务器]
    软件开发知识[TDD]
    MySQL函数之STRCMP()
    MySQL知识[INSERT语法]
    软件开发知识[ORM]
    软件开发知识[ADO.NET Entity Framework]
    mysql workbench 在模板与数据库间同步
  • 原文地址:https://www.cnblogs.com/zackcoder/p/3329236.html
Copyright © 2020-2023  润新知