将当前日期与日期选择器目标-C 的后一天和前一天相加

Posted

技术标签:

【中文标题】将当前日期与日期选择器目标-C 的后一天和前一天相加【英文标题】:add current day with one day after and one day before to date picker objective-C 【发布时间】:2012-08-16 12:30:19 【问题描述】:

我有一个日期选择器,我希望只有一行有 3 个选项:当天、后一天和前一天。

你能帮我做吗?

我的问题是,如何在后一天和前一天添加“当前日期”?

【问题讨论】:

【参考方案1】:
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:days];

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *end = [gregorian dateByAddingComponents:components toDate:[NSDate date] options:0];

其中 days 是一个整数,表示您要从当天添加/减去的天数。

【讨论】:

这是correct 的做法。【参考方案2】:

我就是这样做的-

 -(void)getDate
    NSString *str_CurDate  =[self getCurrentDate];
    NSString *str_NextDay  =[self getFormattedDate:[self dateByAddingDays:1]];
    NSString *str_PrevDay  =[self getFormattedDate:[self dateByAddingDays:-1]];


现在实现这些方法

-(NSString*)getCurrentDate

NSDate *currDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"d/M/yyyy"];
NSString *dateString = [dateFormatter stringFromDate:currDate];
return dateString;




- (NSDate *) dateByAddingDays:(int)days 

NSDate *retVal;
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:days];

NSCalendar *gregorian = [[NSCalendar alloc]    initWithCalendarIdentifier:NSGregorianCalendar];
retVal= [gregorian dateByAddingComponents:components toDate:[NSDate date] options:0];

return retVal;




-(NSString*)getFormattedDate:(NSDate*)myDate

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"d/M/yyyy"];
NSString *dateString = [dateFormatter stringFromDate:myDate];

return dateString;

【讨论】:

【参考方案3】:

封装在NSDate上的一个类别中

- (NSDate *) dateByAddingDays:(int)days 
    NSDate *retVal;
    NSDateComponents *components = [[NSDateComponents alloc] init];
    [components setDay:days];

    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    retVal = [gregorian dateByAddingComponents:components toDate:self options:0];
    return retVal;

【讨论】:

查看此类别进行比较。就个人而言,我会将这两个都放在 +Util 中:***.com/a/11934892/8047

以上是关于将当前日期与日期选择器目标-C 的后一天和前一天相加的主要内容,如果未能解决你的问题,请参考以下文章

帆软的日期函数怎么取本月的第一天和最后一天

java输入日期输出后一天

java 怎么获取指定日期n天后的日期

批处理如何获取当前日期前一天的日期

vue对日期选择器获取到的时间进行加减操作

java获取当前时间的前一天