English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

請教高手:在C語言中,有沒有能將年月日的日期作數值運算,以求出天數
例如:2009/1/1-2009年1月1日到2010/1/1-2010年1月1日,共有365天,
輸入2010/1/1減去2009/1/1等於365
C語言程式能寫得出來嗎?
不好意思麻煩C高手能教我嗎?

2005-05-18 17:27:11 · 1 個解答 · 發問者 steven 1 in 電腦與網際網路 程式設計

1 個解答

你可以先把使用者輸入的時間改成struct tm.  然後用mktime()把struct tm轉換成time_t(秒). 之後用difftime()找出他們差的秒數然後換算成天數就好了 比如說我要知道2009/3/1到2009/3/2有多少分鐘 #include #include #include #include //用Dev-C++需要這行int main(){            struct tm tm1, tm2;            time_t t1, t2;            double diff;             //把tm1裡所有的成員變數設為0            memset(&tm1, 0, sizeof(struct tm));            //把tm2裡所有的成員變數設為0            memset(&tm2, 0, sizeof(struct tm));             //把tm1的日改為1            tm1.tm_mday = 1;            //把tm1的月改為3            tm1.tm_mon = 3;            //把tm1的年改為105. tm裡的年是自1900開始算的tm1.tm_year = 105; //把tm2的日改為2            tm2.tm_mday = 2;            //把tm2的月改為3            tm2.tm_mon = 3;            //把tm2的年改為105. tm裡的年是自1900開始算的tm2.tm_year = 105; t1 = mktime(&tm1);t2 = mktime(&tm2);if (t1 == -1 || t2 == -1)            printf(“輸入錯誤\n”);else{            diff = difftime(t2, t1);            //因diff是秒, 1分是60秒            printf(“相差%d分鐘”, int(diff)/60);}getch(); //用Dev-C++需要這行}

2005-05-19 03:07:08 · answer #1 · answered by 7 · 0 0

fedest.com, questions and answers