如果今天是一个月的最后一天,如何在 ios 中显示从当前日期算起的 7 天
How to show 7 days from current date in ios if today is last day of the month
我在 datepickerview
中显示每月的 7 天。
但我的问题是如果今天的当前日期是该月的最后一天,如何显示从当前日期算起的 7 天。
示例:假设今天是六月,六月有 30 天,所以今天的日期是 30。那么我的问题是如何显示从当前日期开始的接下来的 6 天,意味着在日期选择器中我想要 6 月 30 日、7 月 1 日、2 月, 7 月 3 日、7 月 4 日、7 月 5 日、7 月 6 日。
请建议我如何解决该问题。我还提供了代码,请告诉我我的代码哪里做错了。
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day = 7;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0];
ActionSheetDatePicker *datePicker = [[ActionSheetDatePicker alloc] initWithTitle:@"Select Date" datePickerMode:UIDatePickerModeDate selectedDate:[NSDate date] minimumDate:[NSDate date] maximumDate:sevenDays target:self action:@selector(timeWasSelected:element:) origin:sender];
NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.day = 1;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate *nextDate = [theCalendar dateByAddingComponents:dayComponent toDate:[NSDate date] options:0];
NSLog(@"nextDate: %@ ...", nextDate);
从这里你可以计算出第二天的意思是如果今天是 30 那么第二天是 1 所以你可以使用 for 循环并且 运行 它是你接下来的七天的七倍
您可以通过以下代码行计算接下来的 7 天:
NSDate *sevenDays = [[NSDate date] dateByAddingTimeInterval:60*60*24*7];
然后你可以在 DatePicker 中使用你下面的代码。
ActionSheetDatePicker *datePicker = [[ActionSheetDatePicker alloc]
initWithTitle:@"Select Date" datePickerMode:UIDatePickerModeDate
selectedDate:[NSDate date] minimumDate:[NSDate date]
maximumDate:sevenDays target:self
action:@selector(timeWasSelected:element:) origin:sender];
希望这对您有所帮助。
如果您对此有任何疑问,请添加评论。
编码愉快!!!
这将创建一个数组 nextSevenDays
,其中包含包括今天在内的接下来的 7 天。
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *startDate = [calendar startOfDayForDate:[NSDate date]];
NSMutableArray<NSDate*> * nextSevenDays = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < 7; i++) {
[nextSevenDays addObject:[calendar dateByAddingUnit:NSCalendarUnitDay value: i toDate: startDate options: NSCalendarMatchNextTime]];
}
NSLog(@"%@", nextSevenDays);
要获取从现在起 7 天后的日期,请使用
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *startDate = [calendar startOfDayForDate:[NSDate date]];
NSDate *sevenDaysFromNow = [calendar dateByAddingUnit:NSCalendarUnitDay value: 7 toDate: startDate options: NSCalendarMatchNextTime];
NSLog(@"%@", sevenDaysFromNow);
代码似乎是正确的,也许问题出在您使用的第三方选择器上?尝试使用 UIDatePicker 编码,看看是否得到了您想要的结果,如果是这样,则意味着 ActionSheetDatePicker 有一些问题....
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day = 7;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate: [NSDate date] options:0];
下面的 UIDatePicker 代码看起来像这样...._datePicker 是 iboutlet UIDatePicker
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day = 7;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0];
[_datePicker setMinimumDate:[NSDate date]];
[_datePicker setMaximumDate:sevenDays];
在带有上述代码的 UIDatePicker 中,如果用户滚动到上一个日期,选择器将自动设置为今天的日期,如果用户滚动到第 10 个选择器,则 7 月 7 日将自动设置为 7 月 7 日
for (int i = 0; i < 7; i ++)
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day =i;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:objDate.date options:0];
[dateFormatter setDateFormat:@"dd/MM/yy"];
NSString *str = [dateFormatter stringFromDate:sevenDays];
NSLog(@"str : %@",str);
}
希望这段代码对您有所帮助:)
我在 datepickerview
中显示每月的 7 天。
但我的问题是如果今天的当前日期是该月的最后一天,如何显示从当前日期算起的 7 天。
示例:假设今天是六月,六月有 30 天,所以今天的日期是 30。那么我的问题是如何显示从当前日期开始的接下来的 6 天,意味着在日期选择器中我想要 6 月 30 日、7 月 1 日、2 月, 7 月 3 日、7 月 4 日、7 月 5 日、7 月 6 日。
请建议我如何解决该问题。我还提供了代码,请告诉我我的代码哪里做错了。
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day = 7;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0];
ActionSheetDatePicker *datePicker = [[ActionSheetDatePicker alloc] initWithTitle:@"Select Date" datePickerMode:UIDatePickerModeDate selectedDate:[NSDate date] minimumDate:[NSDate date] maximumDate:sevenDays target:self action:@selector(timeWasSelected:element:) origin:sender];
NSDateComponents *dayComponent = [[NSDateComponents alloc] init];
dayComponent.day = 1;
NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSDate *nextDate = [theCalendar dateByAddingComponents:dayComponent toDate:[NSDate date] options:0];
NSLog(@"nextDate: %@ ...", nextDate);
从这里你可以计算出第二天的意思是如果今天是 30 那么第二天是 1 所以你可以使用 for 循环并且 运行 它是你接下来的七天的七倍
您可以通过以下代码行计算接下来的 7 天:
NSDate *sevenDays = [[NSDate date] dateByAddingTimeInterval:60*60*24*7];
然后你可以在 DatePicker 中使用你下面的代码。
ActionSheetDatePicker *datePicker = [[ActionSheetDatePicker alloc]
initWithTitle:@"Select Date" datePickerMode:UIDatePickerModeDate
selectedDate:[NSDate date] minimumDate:[NSDate date]
maximumDate:sevenDays target:self
action:@selector(timeWasSelected:element:) origin:sender];
希望这对您有所帮助。
如果您对此有任何疑问,请添加评论。
编码愉快!!!
这将创建一个数组 nextSevenDays
,其中包含包括今天在内的接下来的 7 天。
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *startDate = [calendar startOfDayForDate:[NSDate date]];
NSMutableArray<NSDate*> * nextSevenDays = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i < 7; i++) {
[nextSevenDays addObject:[calendar dateByAddingUnit:NSCalendarUnitDay value: i toDate: startDate options: NSCalendarMatchNextTime]];
}
NSLog(@"%@", nextSevenDays);
要获取从现在起 7 天后的日期,请使用
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDate *startDate = [calendar startOfDayForDate:[NSDate date]];
NSDate *sevenDaysFromNow = [calendar dateByAddingUnit:NSCalendarUnitDay value: 7 toDate: startDate options: NSCalendarMatchNextTime];
NSLog(@"%@", sevenDaysFromNow);
代码似乎是正确的,也许问题出在您使用的第三方选择器上?尝试使用 UIDatePicker 编码,看看是否得到了您想要的结果,如果是这样,则意味着 ActionSheetDatePicker 有一些问题....
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day = 7;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate: [NSDate date] options:0];
下面的 UIDatePicker 代码看起来像这样...._datePicker 是 iboutlet UIDatePicker
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day = 7;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:[NSDate date] options:0];
[_datePicker setMinimumDate:[NSDate date]];
[_datePicker setMaximumDate:sevenDays];
在带有上述代码的 UIDatePicker 中,如果用户滚动到上一个日期,选择器将自动设置为今天的日期,如果用户滚动到第 10 个选择器,则 7 月 7 日将自动设置为 7 月 7 日
for (int i = 0; i < 7; i ++)
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *comps = [NSDateComponents new];
comps.day =i;
NSDate *sevenDays = [calendar dateByAddingComponents:comps toDate:objDate.date options:0];
[dateFormatter setDateFormat:@"dd/MM/yy"];
NSString *str = [dateFormatter stringFromDate:sevenDays];
NSLog(@"str : %@",str);
}
希望这段代码对您有所帮助:)