Ios 前天、昨天、今天、明天的结果的相对NSDate
我想检查日期,并得到前天、昨天、今天、明天4种格式的结果 我有一个日期,我想将该日期与当前日期进行比较 现在我已经这样做了,但这只是给我一个正数的日子,所以我不能得到的日期已经过去了,或者它仍然会来的日期Ios 前天、昨天、今天、明天的结果的相对NSDate,ios,objective-c,comparison,nsdate,relative-date,Ios,Objective C,Comparison,Nsdate,Relative Date,我想检查日期,并得到前天、昨天、今天、明天4种格式的结果 我有一个日期,我想将该日期与当前日期进行比较 现在我已经这样做了,但这只是给我一个正数的日子,所以我不能得到的日期已经过去了,或者它仍然会来的日期 -(void)getDateDiffrenceForBirthday:(NSString *)strOriginalDate { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter
-(void)getDateDiffrenceForBirthday:(NSString *)strOriginalDate
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];
NSDate *originalDate = [formatter dateFromString:strOriginalDate];
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [calendar components:NSDayCalendarUnit
fromDate:originalDate
toDate:[NSDate date]
options:0];
NSLog(@"Days To Go %d",components.day);
}
您可以尝试以下代码来获取日期差异
-(void)getDateDiffrenceForBirthday:(NSString *)strOriginalDate
{
NSDate *originalDate = [formatter dateFromString:strOriginalDate];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSDayCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:originalDate toDate:[NSDate date] options:0];
NSLog(@"Days To Go %d",[components day]+1);
}
.您可以尝试以下代码来获取日期差
-(void)getDateDiffrenceForBirthday:(NSString *)strOriginalDate
{
NSDate *originalDate = [formatter dateFromString:strOriginalDate];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSDayCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:originalDate toDate:[NSDate date] options:0];
NSLog(@"Days To Go %d",[components day]+1);
}
.您可以尝试以下代码来获取日期差
-(void)getDateDiffrenceForBirthday:(NSString *)strOriginalDate
{
NSDate *originalDate = [formatter dateFromString:strOriginalDate];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSDayCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:originalDate toDate:[NSDate date] options:0];
NSLog(@"Days To Go %d",[components day]+1);
}
.您可以尝试以下代码来获取日期差
-(void)getDateDiffrenceForBirthday:(NSString *)strOriginalDate
{
NSDate *originalDate = [formatter dateFromString:strOriginalDate];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSDayCalendarUnit;
NSDateComponents *components = [gregorian components:unitFlags fromDate:originalDate toDate:[NSDate date] options:0];
NSLog(@"Days To Go %d",[components day]+1);
}
.您可以使用此功能。其参数日期格式如下: 如果日期是明天、今天、昨天、前天,则返回相应的文本 如果日期早于一周,则返回周日、日和月 所有其他日期格式为中等样式
NSString* dateFormatted(NSDate* datetime){
if(datetime==nil){return nil;}
NSDate *todayWithTime=[NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents=[gregorian components: (NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: todayWithTime];
NSDate *tomorrow=[[NSDate alloc] initWithTimeInterval:86399 sinceDate:[gregorian dateFromComponents: todayComponents]];
NSDateComponents * interval = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:datetime toDate:tomorrow options:0];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:CurrentLocale()];
NSString *result;
if((interval.year==0)&&(interval.month==0)){
if(interval.day==-1){
result=NSLocalizedString(@"Tomorrow", @"");
}else if(interval.day==0){
result=NSLocalizedString(@"Today", @"");
}else if(interval.day==1){
result=NSLocalizedString(@"Yesterday", @"");
}else if(interval.day==2){
result=NSLocalizedString(@"The Day Before Yesterday", @"");
}else if(interval.day<7){
[dateFormatter setDateFormat:@"EEEE, d MMMM"];
result = [dateFormatter stringFromDate:datetime];
}else{
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
result = [dateFormatter stringFromDate:datetime];
}
}else{
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
result = [dateFormatter stringFromDate:datetime];
}
return result;
}
NSString*dateFormatted(NSDate*datetime){
如果(datetime==nil){返回nil;}
NSDate*todayWithTime=[NSDate日期];
NSCalendar*gregorian=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents*todayComponents=[gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)fromDate:todayWithTime];
NSDate*明天=[[NSDate alloc]initWithTimeInterval:86399 sinceDate:[gregorian dateFromComponents:Today Components]];
NSDateComponents*interval=[gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)fromDate:datetime toDate:Tomory选项:0];
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setLocale:CurrentLocale()];
NSString*结果;
如果((间隔年==0)和&(间隔月==0)){
如果(间隔日==-1){
结果=NSLocalizedString(@“明天”,“明天”);
}else if(间隔日==0){
结果=NSLocalizedString(@“今天”,“今天”);
}else if(间隔日==1){
结果=NSLocalizedString(@“昨天”,“昨天”);
}否则,如果(间隔日==2){
结果=NSLocalizedString(@“前天”,@”);
}else if(interval.day您可以使用此函数。它将参数日期的格式设置为:
如果日期是明天、今天、昨天、前天,则返回相应的文本
如果日期早于一周,则返回周日、日和月
所有其他日期格式为中等样式
NSString* dateFormatted(NSDate* datetime){
if(datetime==nil){return nil;}
NSDate *todayWithTime=[NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents=[gregorian components: (NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: todayWithTime];
NSDate *tomorrow=[[NSDate alloc] initWithTimeInterval:86399 sinceDate:[gregorian dateFromComponents: todayComponents]];
NSDateComponents * interval = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:datetime toDate:tomorrow options:0];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:CurrentLocale()];
NSString *result;
if((interval.year==0)&&(interval.month==0)){
if(interval.day==-1){
result=NSLocalizedString(@"Tomorrow", @"");
}else if(interval.day==0){
result=NSLocalizedString(@"Today", @"");
}else if(interval.day==1){
result=NSLocalizedString(@"Yesterday", @"");
}else if(interval.day==2){
result=NSLocalizedString(@"The Day Before Yesterday", @"");
}else if(interval.day<7){
[dateFormatter setDateFormat:@"EEEE, d MMMM"];
result = [dateFormatter stringFromDate:datetime];
}else{
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
result = [dateFormatter stringFromDate:datetime];
}
}else{
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
result = [dateFormatter stringFromDate:datetime];
}
return result;
}
NSString*dateFormatted(NSDate*datetime){
如果(datetime==nil){返回nil;}
NSDate*todayWithTime=[NSDate日期];
NSCalendar*gregorian=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents*todayComponents=[gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)fromDate:todayWithTime];
NSDate*明天=[[NSDate alloc]initWithTimeInterval:86399 sinceDate:[gregorian dateFromComponents:Today Components]];
NSDateComponents*interval=[gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)fromDate:datetime toDate:Tomory选项:0];
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setLocale:CurrentLocale()];
NSString*结果;
如果((间隔年==0)和&(间隔月==0)){
如果(间隔日==-1){
结果=NSLocalizedString(@“明天”,“明天”);
}else if(间隔日==0){
结果=NSLocalizedString(@“今天”,“今天”);
}else if(间隔日==1){
结果=NSLocalizedString(@“昨天”,“昨天”);
}否则,如果(间隔日==2){
结果=NSLocalizedString(@“前天”,@”);
}else if(interval.day您可以使用此函数。它将参数日期的格式设置为:
如果日期是明天、今天、昨天、前天,则返回相应的文本
如果日期早于一周,则返回周日、日和月
所有其他日期格式为中等样式
NSString* dateFormatted(NSDate* datetime){
if(datetime==nil){return nil;}
NSDate *todayWithTime=[NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents=[gregorian components: (NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: todayWithTime];
NSDate *tomorrow=[[NSDate alloc] initWithTimeInterval:86399 sinceDate:[gregorian dateFromComponents: todayComponents]];
NSDateComponents * interval = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:datetime toDate:tomorrow options:0];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:CurrentLocale()];
NSString *result;
if((interval.year==0)&&(interval.month==0)){
if(interval.day==-1){
result=NSLocalizedString(@"Tomorrow", @"");
}else if(interval.day==0){
result=NSLocalizedString(@"Today", @"");
}else if(interval.day==1){
result=NSLocalizedString(@"Yesterday", @"");
}else if(interval.day==2){
result=NSLocalizedString(@"The Day Before Yesterday", @"");
}else if(interval.day<7){
[dateFormatter setDateFormat:@"EEEE, d MMMM"];
result = [dateFormatter stringFromDate:datetime];
}else{
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
result = [dateFormatter stringFromDate:datetime];
}
}else{
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
result = [dateFormatter stringFromDate:datetime];
}
return result;
}
NSString*dateFormatted(NSDate*datetime){
如果(datetime==nil){返回nil;}
NSDate*todayWithTime=[NSDate日期];
NSCalendar*gregorian=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents*todayComponents=[gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)fromDate:todayWithTime];
NSDate*明天=[[NSDate alloc]initWithTimeInterval:86399 sinceDate:[gregorian dateFromComponents:Today Components]];
NSDateComponents*interval=[gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)fromDate:datetime toDate:Tomory选项:0];
NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setLocale:CurrentLocale()];
NSString*结果;
如果((间隔年==0)和&(间隔月==0)){
如果(间隔日==-1){
结果=NSLocalizedString(@“明天”,“明天”);
}else if(间隔日==0){
结果=NSLocalizedString(@“今天”,“今天”);
}else if(间隔日==1){
结果=NSLocalizedString(@“昨天”,“昨天”);
}否则,如果(间隔日==2){
结果=NSLocalizedString(@“前天”,@”);
}else if(interval.day您可以使用此函数。它将参数日期的格式设置为:
如果日期是明天、今天、昨天、前天,则返回相应的文本
如果日期早于一周,则返回周日、日和月
所有其他日期格式为中等样式
NSString* dateFormatted(NSDate* datetime){
if(datetime==nil){return nil;}
NSDate *todayWithTime=[NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents=[gregorian components: (NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate: todayWithTime];
NSDate *tomorrow=[[NSDate alloc] initWithTimeInterval:86399 sinceDate:[gregorian dateFromComponents: todayComponents]];
NSDateComponents * interval = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:datetime toDate:tomorrow options:0];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:CurrentLocale()];
NSString *result;
if((interval.year==0)&&(interval.month==0)){
if(interval.day==-1){
result=NSLocalizedString(@"Tomorrow", @"");
}else if(interval.day==0){
result=NSLocalizedString(@"Today", @"");
}else if(interval.day==1){
result=NSLocalizedString(@"Yesterday", @"");
}else if(interval.day==2){
result=NSLocalizedString(@"The Day Before Yesterday", @"");
}else if(interval.day<7){
[dateFormatter setDateFormat:@"EEEE, d MMMM"];
result = [dateFormatter stringFromDate:datetime];
}else{
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
result = [dateFormatter stringFromDate:datetime];
}
}else{
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
result = [dateFormatter stringFromDate:datetime];
}
return result;
}
NSString*dateFormatted(NSDate*datetime){
如果(datetime==nil){返回nil;}
NSDate*todayWithTime=[NSDate日期];
NSCalendar*gregorian=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents*todayComponents=[gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)fromDate:todayWithTime];
NSDate*明天=[[NSDate alloc]initWithTimeInterval:86399 sinceDate:[gregorian dateFromComponents:Today Components]];
NSDateComponents*interval=[公历成分:(NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit)fromDate:datetime toDate:tomor