在我的應用程序中,我得到日期和開始時間相同的日期和結束時間。結束時間可能是第二天的時間。NSDate:根據時間添加一天
example : Date : 11/01/2011
start time : 5:30 PM
end time : 4:30 AM (of next day morning)
我沒有得到結束日期。
如何根據結束時間將一天添加到開始日期。我在SO上提到了很多答案,但找不到解決方案。
在我的應用程序中,我得到日期和開始時間相同的日期和結束時間。結束時間可能是第二天的時間。NSDate:根據時間添加一天
example : Date : 11/01/2011
start time : 5:30 PM
end time : 4:30 AM (of next day morning)
我沒有得到結束日期。
如何根據結束時間將一天添加到開始日期。我在SO上提到了很多答案,但找不到解決方案。
你應該使用這個功能
NSDate *endDate = [NSDate dateWithTimeIntervalSinceNow:86400];
這裏86400是60(秒)* 60(分鐘)* 24(小時)。
如果你的startDate從當前日期是沒有,那麼你可以使用此方法
- (id)initWithTimeInterval:(NSTimeInterval)secsToBeAdded sinceDate:(NSDate *)anotherDate
你現在越來越喜歡這個
example : Date : 11/01/2011
start time : 5:30 PM
end time : 4:30 AM (of next day morning)
所以你可以有兩個日期,表示開始時間和結束時間。使用下面的方法獲取時間間隔
- (NSTimeInterval)timeIntervalSince1970
現在你有兩個時間間隔爲兩個不同的日期,對吧?現在簡單地減去它,你會得到你想要的。
髒(無DST檢查)方法:如果您將所有內容都轉換爲常用單位(即NSTimeInterval/double秒),則更容易。檢查結束時間是否小於開始時間(從午夜轉換爲秒數)。從endSeconds減去startSeconds,如果結果爲負值,則增加24小時值(24 * 60 * 60 = 86400)。將結果添加到開始日期/時間。
解決:根據Akkis的答案...
NSDate *startDate = [df dateFromString:startingDateTime];
NSDate *endDate = [df dateFromString:endingDateTime];
NSComparisonResult result;
result = [startDate compare:endDate];
if(result == NSOrderedDescending)
{
NSLog(@"newDate is greater");
endDate = [endDate dateByAddingTimeInterval:60*60*24];
}
你的問題不明確。你能否指定一些要點,比如你在哪裏得到它,以及你想如何改變日期。 – Robin
我從服務器上使用web服務獲取 – Maulik
你好,這是什麼最終解決方案。當你沒有結束日期。 – MinuMaster