计算某个日期与当前日期相隔的天数
2014-09-28 12:18
253 查看
//返回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:unit
b7a4
Flags
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:unit
b7a4
Flags
fromDate:[NSDatedateWithTimeIntervalSince1970:date]];
return comps;
}
相关文章推荐
- php计算时间差/两个时间日期相隔的天数,时,分,秒.
- 计算两个日期内相隔的天数
- 计算两个日期之间相隔天数
- js 时间计算(加减天数、返回当前时间后一个星期的日期,返回格式yyyy-MM-dd)
- c实现任给两日期计算相隔天数问题
- JavaScript计算指定日期与当前日期的相差天数
- 通过两个不同日期计算相隔天数
- 用c++实现输入任意两个日期 计算相隔天数
- Oracle相隔天数日期相减计算
- 计算出任意两个日期之间相隔的天数
- js计算2个日期相差的天数,两个日期相差的天数,日期相隔天数
- php计算时间差/两个时间日期相隔的天数,时,分,秒.
- Android 计算两个日期之间相隔的天数
- java计算两个日期之间相差天数和相隔天数详解
- 计算两个日期相隔的天数(jodd)
- JavaScript计算指定日期与当前日期的相差天数
- 输入日期,计算出与当前系统日期相隔多少天(获取系统时间,年月日分别获取,对其进行格式化simpledateformat;输入的日期类似操作)
- 计算两个日期相隔天数 思路:假设1998-10-10 2010-5-5 首先获取1889-10-10这个日期在这一年中还剩多少天 再次获取2010-5-5这个日子在这一年内已经过了
- 计算个日期之间相隔的天数
- 计算某个日期和当前时间的天数差