1. 程式人生 > >C/C++學習:某日期到今天總天數

C/C++學習:某日期到今天總天數

問題

兩週實訓,擴充套件題:某日期到今天總天數

問題描述: 根據鍵入的某日期計算到今天為止的總天數。

解題

完整程式碼:

/*
Module Name:某日期到今天總天數 
Module Date:20141223
Module Auth:CLyoko
Description:根據鍵入的某日期計算到今天為止的總天數。 

Other:
    Revision History:
    Date        Rel Ver.    Notes
    20141223    1.0         建立程式 

*/

#include<stdio.h>
#include<stdlib.h>
#include<time.h> struct date { int year; int month; int day; }data; int main(int argc, char *argv[]) { int m[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int total_day = 0, i, j; int toyear,tomonth,today; printf(" 某日期到今天總天數\n"); printf("請輸入日期(例19951006):"
); scanf("%4d%2d%2d",&data.year, &data.month, &data.day); //獲取操作當天的日期 struct tm *tm; time_t t;//Long t=time(NULL); tm=localtime(&t); toyear=tm->tm_year+1900; today=tm->tm_mday; tomonth=tm->tm_mon+1; //過去完整年的處理 //除今年之外的年份天數加和 for(j = toyear-1
;j>data.year;j--) { //把12個月的天數加和 for(i = 1;i <= 12;i++) { total_day += m[i]; } //這些年份若為閏年則總天數+1 if( (j % 4 == 0 && j % 100 != 0) || (j % 400 == 0) ) { total_day += 1; } } //起始年的不完整月份天數加和 //輸入年天數加和 for(i=12;i>data.month;i--) { total_day += m[i]; } total_day+=m[data.month]-data.day+1; //當年天數加和 //除當年當月的天數加和 for(i = tomonth;i >= 1;i--) { total_day += m[i-1]; } //今月天數加和 total_day+=today; //今年若為閏年則總天數+1 if( (toyear % 4 == 0 && toyear % 100 != 0) || (toyear % 400 == 0) ) { if(tomonth > 2) { total_day += 1; } } printf("該日期到今天的總天數為:%d\n\n",total_day); system("pause"); return 0; }