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

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

你能帮我做吗?

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

【问题讨论】:

    标签: objective-c ios datepicker nsdate


    【解决方案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 是一个整数,表示您要从当天添加/减去的天数。

    【讨论】:

    【解决方案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;
      }
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多