提问人:Anupam Gupta 提问时间:9/23/2016 更新时间:9/23/2016 访问量:79
如果今天是每月的最后一天,如何添加日期。?
How to add Date if today is last day of the month.?
问:
我遇到了一个问题,我需要在 7 天之前创建一个步进器。我为此编码,但在每月的最后几天的情况下,它将保持在同一个月继续,而不是在下个月也应该更改。 今年需要实施同样的情况。
例如,如果今天是 2016 年 12 月 30 日,那么通过添加 7 天,需要将其更改为 2017 年 1 月 7 日。提前致谢。
答:
-1赞
Sanjay Kakadiya
9/23/2016
#1
NSDate *now = [NSDate date];
NSDate *sevenDaysAgo = [now dateByAddingTimeInterval:+7*24*60*60];
在这里添加 7 天添加到您当前的日期
评论
0赞
Anupam Gupta
9/23/2016
我已经遵循相同的代码,但通过添加日期,它也不会改变月份。+(NSDate*)getDateByAdding:(int)dayes daysInTheDate :(NSDate *)givenDate{ return [givenDate dateByAddingTimeInterval:60*60*24*dayes];
0赞
Sanjay Kakadiya
9/23/2016
在您的函数中使用了我的 ANS 并检查。NSDate *now = [NSDate 日期];这里使用了你的日期 NSDate *sevenDaysAgo = [now dateByAddingTimeInterval:+7*24*60*60];
0赞
SKD
9/23/2016
@Anupam Gupta我已经编译了您的方法,并通过添加 9 天和今天日期并得到 2016-09-23 13:07:46.091 RBook[1318:67957] 日期 = 2016-10-02 07:37:45 +0000
1赞
Desdenova
9/23/2016
这是一种非常错误的日历计算方法。应使用日期组件和日期单位。
0赞
Anupam Gupta
9/30/2016
@sailendrak。谢谢,实际上同一个对象是从其他地方更新的,我的方法工作正常。
2赞
Manishankar
9/23/2016
#2
试试这个。在这里,我从特定日期添加了 7 天。
// Enter current date
NSString *currentDate = @"2016-12-30";
// Set number of days to add
int addDaysCount = 7;
// Set date formatter
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
// Convert string to NSDate
NSDate *dateFromString = [dateFormatter dateFromString:currentDate];
// Initialize date component
NSDateComponents *dateComponents = [[NSDateComponents alloc] init];
[dateComponents setDay:addDaysCount];
// Retrieve date with increased days count
NSDate *newDate = [[NSCalendar currentCalendar]
dateByAddingComponents:dateComponents
toDate:dateFromString options:0];
NSLog(@"Current date: %@", [dateFormatter stringFromDate:dateFromString]);
NSLog(@"Updated date: %@", [dateFormatter stringFromDate:newDate]);
评论
0赞
Tom Harrington
9/25/2016
通过使用 方法,可以简化此操作。NSCalendar
dateByAddingUnit:value:toDate:options:
评论