xiaozhao-521 发表于 2013-1-28 18:13:36

时间运算之Calendars

Creating a Calendar
 
 
1:You create a calendar object by specifying an identifier for the calendar you want. Mac OS X provides data for several different calendars—Buddhist, Chinese, Gregorian, Hebrew, Islamic, and Japanese—specified by constants in NSLocale.
 
 
NSCalendar *japaneseCalendar = [      initWithCalendarIdentifier:NSJapaneseCalendar]; 
 
2:You can get the calendar for the user's preferred locale (or in general from any NSLocale object) using the key NSLocaleCalendar,
 
NSCalendar *usersCalendar = [ initWithCalendarIdentifier:      [ objectForKey:NSLocaleCalendar]]; 
 
3:or most easily using the NSCalendar method currentCalendar. 
 
 
NSCalendar *currentCalendar = ; 
 

 
Calendrical Calculations
 
取得时间差
 
NSDate *startDate = ...;NSDate *endDate = ...; NSCalendar *gregorian = [      initWithCalendarIdentifier:NSGregorianCalendar]; unsigned int unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit; NSDateComponents *components = ;int months = ;int days = ; 
 
api:
 
 
1:从NSDate 中取得NSDateComponents 对象
 
Returns a NSDateComponents object containing a given date decomposed into specified components.
- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)date
 
unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |NSDayCalendarUnit;NSDate *date = ;NSDateComponents *comps = ; 
 
2:取得时间差
Returns, as an NSDateComponents object using specified components, the difference between two supplied dates.
- (NSDateComponents *)components:(NSUInteger)unitFlags fromDate:(NSDate *)startingDate toDate:(NSDate *)resultDate options:(NSUInteger)opts
 
NSDate *startDate = ...;NSDate *endDate = ...;unsigned int unitFlags = NSMonthCalendarUnit | NSDayCalendarUnit;NSDateComponents *comps = ;int months = ;int days = ; 
3:在给定的NSDate 上增加几天,几年等。。。。
 
Returns a new NSDate object representing the absolute time calculated by adding given components to a given date.
- (NSDate *)dateByAddingComponents:(NSDateComponents *)comps toDate:(NSDate *)date options:(NSUInteger)opts
 
NSDate *currentDate = ;NSDateComponents *comps = [ init];;;NSDate *date = ;; 
4:取得一个指定的时间
Returns a new NSDate object representing the absolute time calculated from given components.
- (NSDate *)dateFromComponents:(NSDateComponents *)comps
 
NSDateComponents *comps = [ init];;;;;;;NSDate *date = ;; 
 

 Calendar Units
Specify calendrical units such as day and month.
 
enum {
   NSEraCalendarUnit = kCFCalendarUnitEra,
   NSYearCalendarUnit = kCFCalendarUnitYear,
   NSMonthCalendarUnit = kCFCalendarUnitMonth,
   NSDayCalendarUnit = kCFCalendarUnitDay,
   NSHourCalendarUnit = kCFCalendarUnitHour,
   NSMinuteCalendarUnit = kCFCalendarUnitMinute,
   NSSecondCalendarUnit = kCFCalendarUnitSecond,
   NSWeekCalendarUnit = kCFCalendarUnitWeek,
   NSWeekdayCalendarUnit = kCFCalendarUnitWeekday,
   NSWeekdayOrdinalCalendarUnit = kCFCalendarUnitWeekdayOrdinal
};
页: [1]
查看完整版本: 时间运算之Calendars