將秒數換成分鐘和小時,代碼如下:
int minutes = floor(seconds/60);
int sec = trunc(seconds - minutes * 60);
int hours1 = floor(seconds / (60 * 60));
運行之後在60分鐘緊接著給出 01:61:01,我要的計時器格式是 01:01:01
就是分鐘數在60分之後沒實現轉換。
請幫忙解決一下,謝謝您的幫助。
是使用NSTimer實現的計時器嗎? 精確計算計時器的話,可以使用系統函數來做.
思路:
程序開始時,拿到當前時間. 開啟Timer 間隔一秒執行一次處理函數,在處理函數中更新計時器的顯示結果.計時器的顯示結果通過當前時間與第一次拿到的時間比較得到相差的時間.即為當前計時器的時間
偽代碼如下:
NSDate *date1=... //程序開始時第一次拿到的時間
NSDate *date2=[NSDate date]; // 當前時間
NSCalendar *cal=[NSCalendar currentCalendar];
unsigned int unitFlags=NSYearCalendarUnit | NSMonthCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *d=[cal components:unitFlags fromDate:date1 toDate:date2 options:0];
NSLog(@"%02d:%02d:%02d",[d hour], [d mintue],[d second]);