2017-02-11 23 views
0

是的,這是很長的路,但我試圖用一種基本的方式來做到這一點。 編譯器開始將所有數字顯示爲負數,起初它們都是正數,但我無法弄清楚原因。 我知道這看起來複雜,我不知道該怎麼做呢,因爲我不與結構尚未或除基本格式的工作:如何使用time.h從秒數轉換到現在秒數(我開始得到一個負數)

#include <stdio.h> 
#include <time.h> 

int main() { 



    // now = time(NULL); <----????? (now is more than a billion seconds - this would be long double, right? 
    // long double now; 
    int CurrentYear = 2017; 
    int CurrentMonth = 2; 
    int CurrentDay = 10; 

    int OldYear = 1970; 
    int OldMonth = 1; 
    int OldDay = 1; 

    int YearsPassed; // 47 years passed 
    int MonthsPassed; // 1 month passed 
    int DaysPassed; // 9 days passed 

    int YearsPassedInDays; 
    // 1533338720 days passed 

    int DaysToHours; 
    int Hours = 24; 
    int Minutes = 60; 

    int HoursToMinutes; 
    int MinutesToSeconds; 
    int Seconds = 60; 


    YearsPassedInDays = YearsPassed * 365; 
    printf("YearsPassedInDays = %d\n", YearsPassedInDays); 
    // 1533338720 days passed 

    DaysToHours = YearsPassedInDays * Hours; 
    printf("DaysToHours = %d\n", DaysToHours); 
    // DaysToHours: 610015968 hours 

    HoursToMinutes = DaysToHours * Minutes; 
    printf("HoursToMinutes = %d\n", HoursToMinutes); 
    // HoursToMinutes: 392762944 minutes 

    // MinutesToSeconds = HoursToMinutes * Seconds; 
    // printf("MinutesToSeconds = %d\n", MinutesToSeconds); 
+0

你應該在第二次猜測之前閱讀'time()'文檔。它返回'time_t',所以你的'now'變量必須聲明爲'type_t now;'。 – DyZ

回答

1

我想你可以使用函數difftime從時間。 ħ庫

double difftime(time_t time1, time_t time2) 

返回的該時間點和TIME2(時間1-TIME2)秒之間的差。 1