我有像「10:10:12」,「12:10:34」,「05:23:11」這樣的時間字符串數組。我想計算一下數組(即「05:23:11」)的較少(最小)時間,並從中減去10分鐘。並以相同的格式保存結果。如果有人知道如何做到這一點,請幫助我。我會感激他/她。預先感謝。在字符串中比較時間並從iPhone中減去10分鐘?
1
A
回答
1
如果使用日期的陣列是大U可以做到這一點llike這一點:
NSArray * arrayWithTime = [NSArray array];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss"];
NSSortDescriptor *d = [[NSSortDescriptor alloc] initWithKey:nil ascending:YES comparator:^NSComparisonResult(id obj1,id obj2){
NSDate *date1 = [dateFormatter dateFromString:obj1];
NSDate *date2 = [dateFormatter dateFromString:obj2];
return [date1 compare:date2];} ];
NSArray * comparators = [NSArray arrayWithObject:d];
NSArray * final = [arrayWithTime sortedArrayUsingDescriptors:comparators];
然後就參加最後一個數組中的第一項,並減去10分鐘
0
有很多方法可以做到這一點,這使我想到的第一件事是這樣的:
NSString *strDate1 = @"10:10:12";
NSString *strDate2 = @"05:23:11";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"HH:mm:ss"];
NSDate *date1 = [dateFormatter dateFromString:strDate1];
NSDate *date2 = [dateFormatter dateFromString:strDate2];
//to compare dates
if([date1 compare:date2] == NSOrderedAscending)
{
//do what you want
}
//to subtract 10 min form a date
NSDate *date3 = [date2 dateByAddingTimeInterval:-60*10];
我希望它能幫助。
2
首先,按照升序排列字符串。如果你的字符串數組被稱爲arrayOfTimeStrings
,那麼你就可以得到一個正確,有序陣列,像這樣:
NSArray *array = [arrayOfTimeStrings sortedArrayUsingSelector:@selector(compare:)];
接下來,只要抓住了第一個項目:
NSString *firstTimeString = (NSString *)[array objectAtIndex:0];
現在,您可以在轉換爲一個NSDate
像這樣:
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"HH:mm:ss"];
NSDate *dateFromFirstString = [formatter dateFromString:firstTimeString];
最後,我們可以從該日期減去600秒,將其轉換回一個NSString
:
NSDate *tenMinutesBeforeDate = [NSDate dateWithTimeInterval:-600 sinceDate:dateFromFirstString];
NSString *tenMinutesBeforeString = [formatter stringFromDate:tenMinutesBeforeDate];
這會比其他解決方案簡單得多,因爲您不必提出自己的排序算法。
希望這會有所幫助。
相關問題
- 1. 如何從HH:MM時間字符串中減去小時和分鐘?
- 2. 如何從字符串中的數字中減去百分比?
- 3. Bash:從給定時間減去10分鐘
- 4. 從時間值減去分鐘
- 5. PHP - 時間減去時間到分鐘
- 6. 在PHP中比較時間字符串
- 7. 減去時間字符串在PHP
- 8. 減去剩餘時間和比較VBA
- 9. 從rails日期時間對象中減去N分鐘
- 10. PHP從unix時間戳中減去分鐘數
- 11. Excel - 從不到一分鐘的時間內減去一分鐘時間
- 12. 減去兩個時間字符串
- 13. 從NSDate減去分鐘
- 14. 從日期減去分鐘
- 15. 減去小時和分鐘
- 16. 從PHP時間戳(字符串)減去時間
- 17. 如何從日期字段中減去12小時30分鐘
- 18. 比較字符串,iphone
- 19. iPhone SDK - 字符串比較
- 20. Android - 將時間字符串與當前時間進行比較減去差值並轉換爲毫秒
- 21. 如何在Java中比較sysdate時間和字符串時間
- 22. 從字符串textview中減去整數
- 23. Grails - 如果少於10分鐘比較Groovy日期時間
- 24. 在Python中減去(Apache日誌)時間戳字符串?
- 25. 從計算時間減去分鐘或小時
- 26. 使用JavaScript從UTC時間戳減去分鐘和小時數
- 27. 減去30分鐘
- 28. 如何比較時間字符串的時間部分?
- 29. 比較SQL(Oracle)中的時鐘時間
- 30. 如何從Javascript中的HH:MM AM時間字符串中減去小時數?
我不知道,如果是OP明確如何減去那十分鐘... – aopsfan
它適用於我。我拿第一個元素,然後使用aopsfan邏輯,從那個時間元素減去10分鐘。謝謝大家。 – python
@python我的解決方案比這更清潔,因爲它在一行中完成了所有操作。你並不需要一個排序描述符,讓'@selector(compare:)'來爲你工作。 – aopsfan