gpt4 book ai didi

ios - 相对 NSDate 与结果 TheDayBeforeYesterday,Yesterady,Today,Tomorrow

转载 作者:行者123 更新时间:2023-11-28 20:09:47 25 4
gpt4 key购买 nike

我想检查日期并以 4 格式获取结果 TheDayBeforeYesterday,Yesterady,Today,Tomorrow。

我有一个日期,我想将该日期与当前日期进行比较。

现在我已经这样做了,但这只是给我正数的一天,所以我无法知道日期已经过去了,或者它仍然会到那个日期。

-(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);

}

最佳答案

您可以使用此功能。它格式化参数日期如下:

如果日期是明天、今天、昨天、前天,则返回相应的文本

如果日期小于一周前,返回工作日、日和月

所有其他日期以中等格式格式化

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;
}

关于ios - 相对 NSDate 与结果 TheDayBeforeYesterday,Yesterady,Today,Tomorrow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20756201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com