中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS中NSTimeInterval怎么用

發布時間:2021-08-30 09:27:52 來源:億速云 閱讀:219 作者:小新 欄目:開發技術

這篇文章主要介紹IOS中NSTimeInterval怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一 ios 獲取時間間隔

想在程序開始或者進入某個界面 ,到結束程序或退出某個界面,獲取到這個持續時間. 獲取到這個時間還需要轉化一個取得時分秒.

-(NSString *)getCurrentTime

{

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

    NSString *dateTime = [formatter stringFromDate:[NSDate date]];

    self.startTime = dateTime;

    return startTime;

}

date1代表開始時間,在開始計時的地方調用 [self getCurrentTime]; 在結束時的方法里寫如下代碼:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSDate *date1 = [formatter dateFromString:startTime];

NSDate *date2 = [NSDate date];

NSTimeInterval aTimer = [date2 timeIntervalSinceDate:date1];

 

int hour = (int)(aTimer/3600);

int minute = (int)(aTimer - hour*3600)/60;

int second = aTimer - hour*3600 - minute*60;

NSString *dural = [NSString stringWithFormat:@"%d時%d分%d秒", hour, minute,second];

二 我想把它轉換成分鐘和秒。

比如我有:“326.4”秒,我想把它轉換成下面的字符串: “5:26”。 什么是實現這一目標的最佳方法是什么?

1. 偽代碼:

minutes = floor(326.4/60)
seconds = round(326.4 - minutes * 60)

2. 簡述 從布賴恩?拉姆齊答案是更方便的,如果你只是想轉換為分鐘。 如果你想Cocoa API的為你做它和轉換您不僅分鐘,但也給天,月,星期等,...我認為這是一個更通用的方法 使用

(NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)startingDate toDate:(NSDate *)resultDate options:(NSUInteger)opts“返回,作為NSDateComponents兩者之間的差異提供的日期”。從API 創建2 NSDate的 CodeGo.net,其區別是你要轉換。 (如果你的2 NSDate的你不需要做這一步,你甚至不需要的 讓你的quotes從NSDateComponents 示例代碼

// The time interval 
NSTimeInterval theTimeInterval = 326.4;
// Get the system calendar
NSCalendar *sysCalendar = [NSCalendar currentCalendar];
// Create the NSDates
NSDate *date1 = [[NSDate alloc] init];
NSDate *date2 = [[NSDate alloc] initWithTimeInterval:theTimeInterval sinceDate:date1]; 
// Get conversion to months, days, hours, minutes
unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit;
NSDateComponents *conversionInfo = [sysCalendar components:unitFlags fromDate:date1 toDate:date2 options:0];
NSLog(@"Conversion: %dmin %dhours %ddays %dmoths",[conversionInfo minute], [conversionInfo hour], [conversionInfo day], [conversionInfo month]);
[date1 release];
[date2 release];

已知問題 太多的只是一個轉換,你是對的,但是這是API如何工作的。 我的建議:如果你要管理你的NSDate和NSCalendar,該API將做艱苦的工作適合你。 

3. ,作為一個堆棧處女...我不知道如何回答布賴恩?拉姆齊的回答... 使用圓不會為59.5和59.99999之間第二值工作。第二個值將是60在此期間。使用TRUNC而不是...

double progress;
int minutes = floor(progress/60);
int seconds = trunc(progress - minutes * 60);

4. 布賴恩?拉姆齊的代碼,去pseudofied:

- (NSString*)formattedStringForDuration:(NSTimeInterval)duration
{
 NSInteger minutes = floor(duration/60);
 NSInteger seconds = round(duration - minutes * 60);
 return [NSString stringWithFormat:@"%d:%02d", minutes, seconds];
}

5. 所有這些看起來比他們需要!這里有一個簡短而親切的方式來轉換的時間間隔為小時,分鐘和秒:

NSTimeInterval timeInterval = 326.4;
long seconds = lroundf(timeInterval); // Modulo (%) operator below needs int or long
int hour = seconds / 3600
int mins = (seconds % 3600) / 60;
int secs = seconds % 60;

請注意,當你把一個浮點數轉換為整數,你得到樓()自動完成,但你可以,如果要是讓你感覺更好:-)它添加到的前兩個 

6. 因為它本質上是一個雙... 60.0劃分和提取的組成部分和小數部分。 的組成部分,將是分鐘的整數。 再乘以小數部分按60.0。 其結果將是剩下秒。

以上是“IOS中NSTimeInterval怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涞源县| 天全县| 射阳县| 荆州市| 娄底市| 淮阳县| 镇江市| 秦皇岛市| 青铜峡市| 定日县| 淄博市| 城市| 福安市| 贵南县| 喀喇沁旗| 潢川县| 绥江县| 若羌县| 沛县| 南乐县| 鲁甸县| 泽普县| 富平县| 馆陶县| 洮南市| 遂溪县| 太湖县| 公主岭市| 南皮县| 东丽区| 贡觉县| 那坡县| 增城市| 永定县| 涞水县| 美姑县| 宜丰县| 称多县| 嘉定区| 榆中县| 泰和县|