的天数,以一个日期与当前日期的
2015-08-22 20:17
405 查看
//返回0
当天,1昨天。2前天,以此类推
//之前那样用时间差来整除一天的秒数,计算出来的天数有误差
+ (int)getDaysFromAnotherDay:(longlong)date {//date是时间戳
// return [self getDaysFrom1970:date] - [self getDaysFrom1970:[[NSDate date] timeIntervalSince1970]];
// NSDateComponents *comps = [[NSDateComponents alloc] init];
// [comps setDay:[NSDateUtils getDay:date]];
// [comps setMonth:[NSDateUtils getMonth:date]];
// [comps setYear:[NSDateUtils getYear:date]];
// NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
// NSDate *endDate = [[NSDate alloc] init];
// NSDate *startDate = [gregorian dateFromComponents:comps];
// [comps release];
// unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
// NSDateComponents *comps2 = [gregorian components:unitFlags fromDate:startDate toDate:endDate options:0];
// [gregorian release];
// [endDate release];
// int days = [comps2 day];
NSDateFormatter *dateFormatter = [[[NSDateFormatter
alloc] init]
autorelease];
[dateFormatter
setDateFormat:@"yyyy-MM-dd"];
[dateFormatter setCalendar: [NSCalendar
autoupdatingCurrentCalendar]];
NSDate *today = [dateFormatter
dateFromString:[dateFormatter stringFromDate:[NSDate
date]]];
NSDate *startDate = [dateFormatter
dateFromString:[NSDateUtils
getyyyyMMddDate:date]];
NSDate *formatterStartDate = [dateFormatter
dateFromString:[dateFormatter stringFromDate:startDate]];
NSTimeInterval interval = [today
timeIntervalSinceDate:formatterStartDate];
NSInteger days = ((NSInteger)interval)/(3600*24);
return days;
}
+ (int)getYear:(longlong)date {
return [[selfgetNSDateComponents:date]year];
}
+ (int)getMonth:(longlong)date {
return [[selfgetNSDateComponents:date]month];
}
+ (int)getDay:(longlong)date {
return [[selfgetNSDateComponents:date]day];
}
+ (NSDateComponents *)getNSDateComponents:(longlong)date {
NSInteger unitFlags =NSYearCalendarUnit |
NSMonthCalendarUnit |NSDayCalendarUnit |
NSWeekdayCalendarUnit |NSHourCalendarUnit |
NSMinuteCalendarUnit |NSSecondCalendarUnit;
NSDateComponents *comps = [[selfshareNSCalendar]components:unitFlags
fromDate:[NSDatedateWithTimeIntervalSince1970:date]];
return comps;
}
当天,1昨天。2前天,以此类推
//之前那样用时间差来整除一天的秒数,计算出来的天数有误差
+ (int)getDaysFromAnotherDay:(longlong)date {//date是时间戳
// return [self getDaysFrom1970:date] - [self getDaysFrom1970:[[NSDate date] timeIntervalSince1970]];
// NSDateComponents *comps = [[NSDateComponents alloc] init];
// [comps setDay:[NSDateUtils getDay:date]];
// [comps setMonth:[NSDateUtils getMonth:date]];
// [comps setYear:[NSDateUtils getYear:date]];
// NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
// NSDate *endDate = [[NSDate alloc] init];
// NSDate *startDate = [gregorian dateFromComponents:comps];
// [comps release];
// unsigned int unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
// NSDateComponents *comps2 = [gregorian components:unitFlags fromDate:startDate toDate:endDate options:0];
// [gregorian release];
// [endDate release];
// int days = [comps2 day];
NSDateFormatter *dateFormatter = [[[NSDateFormatter
alloc] init]
autorelease];
[dateFormatter
setDateFormat:@"yyyy-MM-dd"];
[dateFormatter setCalendar: [NSCalendar
autoupdatingCurrentCalendar]];
NSDate *today = [dateFormatter
dateFromString:[dateFormatter stringFromDate:[NSDate
date]]];
NSDate *startDate = [dateFormatter
dateFromString:[NSDateUtils
getyyyyMMddDate:date]];
NSDate *formatterStartDate = [dateFormatter
dateFromString:[dateFormatter stringFromDate:startDate]];
NSTimeInterval interval = [today
timeIntervalSinceDate:formatterStartDate];
NSInteger days = ((NSInteger)interval)/(3600*24);
return days;
}
+ (int)getYear:(longlong)date {
return [[selfgetNSDateComponents:date]year];
}
+ (int)getMonth:(longlong)date {
return [[selfgetNSDateComponents:date]month];
}
+ (int)getDay:(longlong)date {
return [[selfgetNSDateComponents:date]day];
}
+ (NSDateComponents *)getNSDateComponents:(longlong)date {
NSInteger unitFlags =NSYearCalendarUnit |
NSMonthCalendarUnit |NSDayCalendarUnit |
NSWeekdayCalendarUnit |NSHourCalendarUnit |
NSMinuteCalendarUnit |NSSecondCalendarUnit;
NSDateComponents *comps = [[selfshareNSCalendar]components:unitFlags
fromDate:[NSDatedateWithTimeIntervalSince1970:date]];
return comps;
}
相关文章推荐
- i++是否原子操作?并解释为什么???????
- i++是否原子操作?并解释为什么???????
- 完全背包
- poj 1094 拓扑
- TYVJ 1001 第K极值
- https实现的几个问题
- 通过java的反射从list中取出对象从而取出属性值
- 什么什么01
- 获得二叉树深度的非递归实现
- 程序员笔试面试常见题总结,更新ing
- poj 1698 二分图多重匹配
- 位级运算的一些事
- Android-基本控件(AutoCompleteTextView,MultiAutoCompleteTextView,ToggleButton)
- 路径(path)题解
- 杭电ACM1425——sort~~水题
- 获取客户端IP
- MySQL必知必会(汇总数据, 聚集函数)
- POJ 1995 Raising Modulo Numbers【快速幂】
- 学习笔记 post和get的区别
- poj 1258 最小生成树 prim