How to add one month to an NSDate?

前端 未结 9 2137
自闭症患者
自闭症患者 2020-12-23 11:01

How To Add Month To NSDate Object?

NSDate *someDate = [NSDate Date] + 30Days.....;
相关标签:
9条回答
  • 2020-12-23 11:40

    You need to use NSDateComponents:

    NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
    [dateComponents setMonth:1];
    NSCalendar *calendar = [NSCalendar currentCalendar];
    NSDate *newDate = [calendar dateByAddingComponents:dateComponents toDate:originalDate options:0];
    [dateComponents release]; // If ARC is not used, release the date components
    
    0 讨论(0)
  • 2020-12-23 11:41

    With iOS 8 and OS X 10.9 you can add NSCalendarUnits using NSCalendar:

    Objective-C

    NSCalendar *cal = [NSCalendar currentCalendar];
    NSDate *someDate = [cal dateByAddingUnit:NSCalendarUnitMonth value:1 toDate:[NSDate date] options:0];
    

    Swift 3

    let date = Calendar.current.date(byAdding: .month, value: 1, to: Date())
    

    Swift 2

    let cal = NSCalendar.currentCalendar()
    let date = cal.dateByAddingUnit(.Month, value: 1, toDate: NSDate(), options: [])
    
    0 讨论(0)
  • 2020-12-23 11:45

    Do you want to add a "month" or exactly 30 days or one day or one year based on user selecting automatically calculation to date.

      NSCalendar *calendar = [NSCalendar currentCalendar];
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] 
      init];
        [dateFormatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"];
        NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute) fromDate:[NSDate date]];
    
            NSDateComponents *dayComponent = [[NSDateComponents alloc] 
     init];
            int changeid = [here number of days intValue];
    
            dayComponent.hour = changeid;
    
            NSCalendar *theCalendar = [NSCalendar currentCalendar];
            NSDate *nextDate = [theCalendar 
     dateByAddingComponents:dayComponent toDate:[dateFormatter 
      dateFromString:self.fromDateTF.text] options:0];
    
            NSLog(@"nextDate: %@ ...", nextDate);
            [self.toDateTF setText:[dateFormatter 
                stringFromDate:nextDate]];
    

    ////month

    0 讨论(0)
提交回复
热议问题