可能重複:
How do you calculate the day of the year for a specific date in Objective CiOS如何獲取當年的日期編號?
我需要一年的天數,不知道這將是最好的形式給出。
實施例:
21-JAN-2012 - > 21
2-FEB-2012 - > 33
2-MAR-2012 - > 62
2- mar- 2011 - > 61
任何想法?
感謝
可能重複:
How do you calculate the day of the year for a specific date in Objective CiOS如何獲取當年的日期編號?
我需要一年的天數,不知道這將是最好的形式給出。
實施例:
21-JAN-2012 - > 21
2-FEB-2012 - > 33
2-MAR-2012 - > 62
2- mar- 2011 - > 61
任何想法?
感謝
看看NSTimeInterval。你可以得到兩個日期之間的秒數:
NSTimeInterval secondsElapsed = [secondDate timeIntervalSinceDate:firstDate];
所以你的firstDate可以是一年的開始。然後,你可以用3600 * 24(每天的秒數)除以得到日子。
這實際上是不正確的,我是新來的主題,但使用NSCalendar(或NSDateFormatter)將是更安全的方法: http://infiniteundo.com/post/25326999628/falsehoods-programmers- about-about-time –
[docs](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DatesAndTimes/Articles/dtCalendars.html#//apple_ref/doc/uid/TP40003470-SW7 )也覆蓋了這一點: 「如果你想知道一年中的哪一天,那麼你可以使用NSCalendar類的ordinalityOfUnit:inUnit:forDate:方法。」 –
首先創建一個Dictionnary,如:
[Jan => 30,
Feb => 28,
...]
每月每一天。其次與你的約會像
閏年呢?這不是一個好的做法 – Jasper
退房下面的解決方案,您必須使用timeIntervalSinceDate:此
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init] ;
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *date1 = [dateFormatter dateFromString:@"2012-01-01"];
NSDate *date2 = [NSDate date];
NSLog(@"date %@ ", date2);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDateFormatter *timeFormat = [[NSDateFormatter alloc] init];
[timeFormat setDateFormat:@"HH:mm:ss"];
NSDate *now = [[NSDate alloc] init];
NSString *theDate = [dateFormat stringFromDate:now];
NSDate *dt = [dateFormat dateFromString:theDate];
NSTimeInterval diffDays = [dt timeIntervalSinceDate:date1];
NSLog(@"Date %f ^^^^ ", diffDays/(24*60*60));
我有點晚了黨,但無論如何,這裏有雲:
NSDate *today = [NSDate date];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"DDD"];
NSInteger dayInYear = [[dateFormat stringFromDate:today] integerValue];
NSLog(@"today is %d. day in year", dayInYear);
結果對於14.jun.2012:今天是166年的日期
編輯:我很驚訝, e在Google上並不是一個容易找到的例子。
您也可以使用@"DD"
格式獲取月中的某日或@"D"
以獲得星期幾。
編輯2:只是說明:創建NSDateFormatter
可以相當昂貴操作。如果你的類經常使用這個函數,你可能需要創建一個靜態格式化器ivar。
使用NSDateFormatter解決問題的+1。我喜歡有兩種方式去做某件事。 – davidethell
謝謝! +1回到你:)我同意,更多的方式來做某件事當然是有趣的。 –
爲什麼downvotes?這對於有效的邏輯需求是一個有效的問題? – davidethell