2013-10-22 83 views
0

我需要一些幫助來對日期進行比較。該程序在用戶輸入輸入日期時起作用,並將其與日期中的文本文檔文件進行比較。如果日期之間的用戶輸入日期,它匹配的文件日期,那麼它將被執行..林考慮使用這種情況下的開關情況,而不是如果..是否有可能?將日期與文件中的用戶輸入日期和日期進行比較

if (date_compare(tld->begin, d) > 0 && //compare user input start date with actual date.txt begin input date 
     date_compare(tld->end, d) < 0) //compare user input end date with actual date.txt input date 
    return 0; 
+0

是的,這是可能的。如果你只是搜索一下,還有很多日期比較函數。 –

+0

「case diagram」是什麼意思?開關/案例陳述? – foobar123foofoo

+0

是的開關箱我的壞..我怎麼做到這一點? – questionmarks

回答

0

我會考慮使用一些庫進行數據計算和比較。正確編寫嚴格的生產代碼非常困難,特別是在使用語言環境時。從閏年開始,通過閏秒進入珍珠,如Why is subtracting these two times (in 1927) giving a strange result?

對於簡單的初學者,我會建議使用標準庫difftimechrono工具。

您顯示的if對我來說似乎很好,並且您可以很容易地用date_compare包裝difftime

雖然兩個問題。

你的date_compare的操作數的順序是什麼?對於difftime,簽名是double difftime(time_t time_end, time_t time_beg);,這似乎與您使用的相反。否則,該陳述在邏輯上總是假的。

另外你似乎檢查d是否在(tld->start; tld->begin)之內,如果是的話,你用0退出。換句話說,當文件符合日期間隔時,您將返回0,我希望這是有意的。

相關問題