2012-06-14 19 views

回答

-1

看看NSTimeInterval。你可以得到兩個日期之間的秒數:

NSTimeInterval secondsElapsed = [secondDate timeIntervalSinceDate:firstDate]; 

所以你的firstDate可以是一年的開始。然後,你可以用3600 * 24(每天的秒數)除以得到日子。

+0

這實際上是不正確的,我是新來的主題,但使用NSCalendar(或NSDateFormatter)將是更安全的方法: http://infiniteundo.com/post/25326999628/falsehoods-programmers- about-about-time –

+0

[docs](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DatesAndTimes/Articles/dtCalendars.html#//apple_ref/doc/uid/TP40003470-SW7 )也覆蓋了這一點: 「如果你想知道一年中的哪一天,那麼你可以使用NSCalendar類的ordinalityOfUnit:inUnit:forDate:方法。」 –

-3

首先創建一個Dictionnary,如:

[Jan => 30, 
Feb => 28, 
...] 

每月每一天。其次與你的約會像

  • :2012年6月13日
  • 您將添加六月前一個月的所有值(您dictionnary一段時間)。
  • 並完成添加日期(這裏:13)。
+0

閏年呢?這不是一個好的做法 – Jasper

-1

退房下面的解決方案,您必須使用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)); 
20

我有點晚了黨,但無論如何,這裏有雲:

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。

+1

使用NSDateFormatter解決問題的+1。我喜歡有兩種方式去做某件事。 – davidethell

+0

謝謝! +1回到你:)我同意,更多的方式來做某件事當然是有趣的。 –

相關問題