當前位置:編程學習大全網 - 編程軟體 - 初學者請教 兩道簡單的c語言編程題目

初學者請教 兩道簡單的c語言編程題目

[回答]

1. 用C語言自己的時間函數

difftime(time_t time1, time_t time0) / 86400

這樣做得缺點是,這裏的time_t類型,只支持到2037年

2. 自己定義函數

樓主用的方法,在實際編程裏不常用,變化比較大。

下面這個方法是直接計算兩個日期到公元元年的天數

然後相減,這個是實際編程時的算法,經過很多程序員的洗煉,已經被廣泛使用

#include<stdio.h>

#define LEAP(y) (y%(y%100?4:400)==0) /*公元y年是否閏年*/

long totaldays(int year,int month,int day)/*公元紀年的總天數*/

{ int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

int c=day,m,y=year-1;

days[2]=28+LEAP(year);

for(m=1;m<month;m++)c+=days[m];

return c+y/4-y/100+y/400+y*365L;

}

void main()

{ int y,m,d; long t1,t2;

printf("date 1: ");

scanf("%d%*c%d%*c%d",&y,&m,&d);

t1=totaldays(y,m,d);

printf("date 2: ");

scanf("%d%*c%d%*c%d",&y,&m,&d);

t2=totaldays(y,m,d);

printf("total days: %ld\n",t2-t1);

}

這應該是全部的實現方法了

樓主的方法沒必要簡化了

尤其是刻意追求短代碼就更沒有必要了

要知道,代碼短了,可讀性就差

兩者協調好,才能稱為好程序^^

悉雨辰寂

  • 上一篇:有哪些職業可以在家工作?
  • 下一篇:飛花令怎麽玩
  • copyright 2024編程學習大全網