NSCalendar 及 NSDate總結

  寫了篇關於NSDate和NSCalendar的文章,本想發到博客園的,結果網站有問題,就到這來湊熱鬧了,但願朋友們多多提意見。。 網站

         日曆對象封裝了對系統日期的計算,包括這一年的開始,總天數以及劃分。咱們將使用日曆對象對絕對日期與components(包括年、月、日、時、分、秒)進行轉換。 spa

1.      在開始以前,咱們應該告知系統咱們當前的時間和日期。NSDate是取當前時間和日期的方法。 component

   NSDate * date = [NSDate date];//定義當前系統時間 orm

2.      currentCalendar來得到當前系統用戶設置的日曆對象。 對象

   NSCalendar * currentCalendar = [NSCalendar currentCalendar];//設置當前的日曆對象 博客

3.      要從裏面取值,還得定義其它的組件:NSComponents來表示一個日期對象的組件---例如年、月、日和小時。 it

   NSDateComponents * components = [[NSDateComponents alloc]init];//定義裏面的組件 date

4.      若是要使NSDateComponents對象有意義,必須將其與一個日曆對象相關聯。 方法

NSDatecomponents * dateComponents = [currentCalents components: NSYearCalendarUnit| NSMonthCalendarUnit| NSDayCalendarUnit| NSHourCalendarUnit| NSMinuteCalendarUnit| NSSecondCalendarUnit| NSWeekCalendarUnit| NSWeekOfMonthCalendarUnit fromDate:date];//告知日曆裏面的組件究竟有哪些 時間

5.      前面已經定義好了,下面就能夠依次取裏面的值了。

NSLog@year:%ld,[dateComponents year];//調用裏面的年份的值

  其餘的也能夠相似一一調用了。

   上面是從日曆裏面輸出組件的值,下面咱們能夠正好反過來,先定義組件,而後給組件進行賦值,最後輸出的日曆裏面僅有咱們定義的幾個組件。

1.      先定義一個組件:

  NSDateComponents * components = [[[NSDateComponents alloc]init]autorelease];//定義組件,而且自動釋放

2.  對裏面的組件進行賦值

  [components setYear:2013];

  [components setMonth:4];

  [components setDay:25];

  [components setHour:16];

3.      定義一個日曆對象:

  NSCalendar *current = [[NSCalendar currentCalendar];

4.      定義一個日期對象,顯示含有所定義組件的日期:

  NSDate * date = [current dateFromComponents :compoments];

5.      輸出這個日曆:

  NSLog(@date:%@,date);

   今天老師講的時候,以爲亂起八糟的,如今整理整理,發現仍是那麼簡單。下回爭取在老師講以前就弄懂。。。下面的一篇要介紹NSDateFormater。
相關文章
相關標籤/搜索