IOS 根据日期,获取该日期所在周,月,年的开始日期,结束日期 的方法,还有下一周或者上一周的时间
2015-09-09 08:55
656 查看
- (void)getMonthBeginAndEndWith:(NSDate *)newDate{
if (newDate == nil) {
newDate = [NSDate date];
}
double interval = 0;
NSDate *beginDate = nil;
NSDate *endDate = nil;
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday:2];//设定周一为周首日
BOOL ok = [calendar rangeOfUnit:NSCalendarUnitWeekOfMonth startDate:&beginDate interval:&interval forDate:newDate];
//分别修改为 NSDayCalendarUnit NSWeekCalendarUnit NSYearCalendarUnit
if (ok) {
endDate = [beginDate dateByAddingTimeInterval:interval-1];
}else {
return;
}
NSDateFormatter *myDateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *beginString = [myDateFormatter stringFromDate:beginDate];
NSString *endString = [myDateFormatter stringFromDate:endDate];
NSString *s = [NSString stringWithFormat:@"%@-%@",beginString,endString];
NSLog(@"%@",s);
}
另外再加上获取上一周或者下一周的时间
NSDate *date =[NSDate date];
_nextDate = [date dateByAddingTimeInterval:60*60*24*7];
_preDate = [date dateByAddingTimeInterval:-60*60*24*7];
[self getMonthBeginAndEndWith:_nextDate];
NSLog(@"%@",_nextDate);
[self getMonthBeginAndEndWith:_preDate];
NSLog(@"%@",_preDate);
if (newDate == nil) {
newDate = [NSDate date];
}
double interval = 0;
NSDate *beginDate = nil;
NSDate *endDate = nil;
NSCalendar *calendar = [NSCalendar currentCalendar];
[calendar setFirstWeekday:2];//设定周一为周首日
BOOL ok = [calendar rangeOfUnit:NSCalendarUnitWeekOfMonth startDate:&beginDate interval:&interval forDate:newDate];
//分别修改为 NSDayCalendarUnit NSWeekCalendarUnit NSYearCalendarUnit
if (ok) {
endDate = [beginDate dateByAddingTimeInterval:interval-1];
}else {
return;
}
NSDateFormatter *myDateFormatter = [[NSDateFormatter alloc] init];
[myDateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *beginString = [myDateFormatter stringFromDate:beginDate];
NSString *endString = [myDateFormatter stringFromDate:endDate];
NSString *s = [NSString stringWithFormat:@"%@-%@",beginString,endString];
NSLog(@"%@",s);
}
另外再加上获取上一周或者下一周的时间
NSDate *date =[NSDate date];
_nextDate = [date dateByAddingTimeInterval:60*60*24*7];
_preDate = [date dateByAddingTimeInterval:-60*60*24*7];
[self getMonthBeginAndEndWith:_nextDate];
NSLog(@"%@",_nextDate);
[self getMonthBeginAndEndWith:_preDate];
NSLog(@"%@",_preDate);
相关文章推荐
- iOS NSDate中关于夏令时的坑
- ios 学习笔记 —— NSDate 使用详解(一)
- 关于NSDate和NSCalendar的一些基本使用
- NSDate,NSDateFormatter以及时区转换
- iOS 日期格式
- 根据已知的日期获取星期
- 模拟电子表的功能
- ios获取当前时间
- 【OC05-2】NSSet、NSNumber、NSValue、NSDate、异常处理(连载七)
- 文件管理习题练习二
- OC菜鸟成长记-OC中的日期和时间
- 日期操作
- NSDate和NSDateFormatter
- ios 日期操作封装
- 黑马程序员 OC语言 - 9 NSDictionary、NSMutableDictionary、NSNumber、NSDate、NSValue
- OC循环渐进:时间格式化
- NSDate, NSDateFormatter的使用
- 获取昨天的时间
- iOS开发中获取上月的起止时间(NSCalendar、NSDateComponents和NSDate的使用)
- iOS 开发 NSDate的一些应用