ios 操作日期NSDate

1.获取当天的日期

[cpp]  view plain copy
  1. NSDate *today=[NSDate date];  

2.获取当天是星期几

[cpp]  view plain copy
  1. NSDateFormatter *form= [[NSDateFormatter alloc] init];  
  2. [form setDateFormat:@"EEEE"];  
  3. NSString *week = [form stringFromDate:[NSDate date]];  
  4. NSLog(@"week: ->>%@",week);  

3.将NSDate格式化日期为字符串

[cpp]  view plain copy
  1. NSDateFormatter *formatter = [[NSDateFormatter alloc] init];  
  2. [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];  
  3. [formatter setDateFormat:@"yyyy年M月d日"];  
  4. NSString *dateStr=[formatter stringFromDate:date];  
  5. NSLog(@"dateStr ->>%@",dateStr);  

4.将字符串日期转换为NSDate

[cpp]  view plain copy
  1. NSDateFormatter *formatter = [[NSDateFormatter alloc] init];  
  2. [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];  
  3. [formatter setDateFormat:@"yyyy年M月d日"];  
  4. NSString *dateStr=@"2012年12月8日";  
  5. NSDate *date=[formatter dateFromString:dateStr];  
  6. NSLog(@"date ->>%@",date);  


5.获取两个日期之间的总天数 

[cpp]  view plain copy
  1. NSDate *startDate=[NSDate date];  
  2. NSDate *endDate=[info objectForKey:@"date"];  
  3. NSInteger days = [endDate daysIntervalSince:startDate];  
  4. remainTime.text=[NSString stringWithFormat:@"%d", days];;  

使用这种方法得用自定义的一个类:  #import  "NSDate+Convience.h"

下面是这个类的文件:
[cpp]  view plain copy
  1. //  NSDate+Convience.h  
  2.   
  3. #import <Foundation/Foundation.h>  
  4.   
  5. @interface NSDate (Convience)  
  6.   
  7. - (NSUInteger)numberOfDaysInMonth;  
  8. - (NSUInteger)firstWeekDayInMonth;  
  9. - (NSUInteger)year;  
  10. - (NSUInteger)month;  
  11. - (NSUInteger)day;  
  12.   
  13. - (NSDate *)offsetMonth:(NSInteger)months;  
  14.   
  15. - (BOOL)isMonthBefore:(NSDate *)date;  
  16. - (BOOL)isBetween:(NSDate *)startDate and:(NSDate *)endDate;  
  17. - (NSInteger)daysIntervalSince:(NSDate *)date;  
  18.   
  19. @end  

[cpp]  view plain copy
  1. //  NSDate+Convience.m  
  2.   
  3.   
  4. #import "NSDate+Convience.h"  
  5.   
  6. @implementation NSDate (Convience)  
  7.   
  8. - (NSUInteger)numberOfDaysInMonth  
  9. {  
  10.     NSCalendar *calendar = [NSCalendar currentCalendar];  
  11.     NSRange range = [calendar rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:self];  
  12.     return range.length;  
  13. }  
  14.   
  15. - (NSUInteger)firstWeekDayInMonth  
  16. {  
  17.     NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
  18.     [gregorian setFirstWeekday:2];  // monday  
  19.       
  20.     NSDateComponents *compoments = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:self];  
  21.     [compoments setDay:1];  
  22.     NSDate *date = [gregorian dateFromComponents:compoments];  
  23.       
  24.     return [gregorian ordinalityOfUnit:NSWeekdayCalendarUnit inUnit:NSWeekCalendarUnit forDate:date];  
  25. }  
  26.   
  27. - (NSUInteger)year {  
  28.     NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
  29.     NSDateComponents *components = [gregorian components:NSYearCalendarUnit fromDate:self];  
  30.     return [components year];  
  31. }  
  32.   
  33. - (NSUInteger)month {  
  34.     NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
  35.     NSDateComponents *components = [gregorian components:NSMonthCalendarUnit fromDate:self];  
  36.     return [components month];  
  37. }  
  38.   
  39. - (NSUInteger)day {  
  40.     NSCalendar *gregorian = [[NSCalendar alloc]  
  41.                              initWithCalendarIdentifier:NSGregorianCalendar];  
  42.     NSDateComponents *components = [gregorian components:NSDayCalendarUnit fromDate:self];  
  43.     return [components day];  
  44. }  
  45.   
  46. - (NSDate *)offsetMonth:(NSInteger)months  
  47. {  
  48.     NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
  49.     [gregorian setFirstWeekday:2];  
  50.       
  51.     NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];  
  52.     [offsetComponents setMonth:months];  
  53.     return [gregorian dateByAddingComponents:offsetComponents toDate:self options:0];  
  54. }  
  55.   
  56. - (BOOL)isMonthBefore:(NSDate *)date  
  57. {  
  58.     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];  
  59.       
  60.     [formatter setDateFormat:@"yyyy"];  
  61.     int year1 = [[formatter stringFromDate:self] integerValue];  
  62.     int year2 = [[formatter stringFromDate:date] integerValue];  
  63.       
  64.     [formatter setDateFormat:@"M"];  
  65.     int month1 = [[formatter stringFromDate:self] integerValue];  
  66.     int month2 = [[formatter stringFromDate:date] integerValue];  
  67.       
  68.     if (year2 > year1) {  
  69.         return YES;  
  70.     }  
  71.       
  72.     if (year1 == year2) {  
  73.         if (month2 > month1) {  
  74.             return YES;  
  75.         }  
  76.     }  
  77.       
  78.     return NO;  
  79. }  
  80.   
  81. - (BOOL)isBetween:(NSDate *)startDate and:(NSDate *)endDate  
  82. {  
  83.     NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];  
  84.     [gregorian setFirstWeekday:2];  
  85.       
  86.     NSDateComponents *components = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:startDate toDate:self options:0];  
  87.       
  88.     if (components.year >= 0 && components.month >= 0 && components.day >= 0) {  
  89.         components = [gregorian components:NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit fromDate:endDate toDate:self options:0];  
  90.           
  91.         if (components.year <= 0 && components.month <= 0 && components.day <= 0) {  
  92.             return YES;  
  93.         }  
  94.     }  
  95.       
  96.     return NO;  
  97. }  
  98.   
  99. - (NSInteger)daysIntervalSince:(NSDate *)date  
  100. {  
  101.     NSTimeInterval interval = [self timeIntervalSinceDate:date];  
  102.     NSInteger days = ceilf(interval/(60*60*24));  
  103.     return days;  
  104. }  
  105.   
  106. @end  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值