在 ios 中显示最近 5 天的日期
display last 5days date in ios
我正在尝试显示最近 5 天的日期。但它只显示最后日期(昨天)。我正在使用以下代码来显示它。
.h 文件:
NSInteger getDist;
NSString *lastdate;
NSDateFormatter *dateFormatter;
NSDate *sevenDaysAgo;
NSDate *dateAfterDecrement;
NSString *dateString;
int i;
viewDidLoad:
NSDate *currDate = [NSDate date];
dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd.MM.YY"];
dateString = [dateFormatter stringFromDate:currDate];
_currentDate.text=dateString;
-(void)display
{
for(i=1;i<=5;i++)
{
lastdate = _currentDate.text;
[dateFormatter setDateFormat:@"dd.MM.YY"];
sevenDaysAgo = [dateFormatter dateFromString:lastdate];
dateAfterDecrement=[sevenDaysAgo initWithTimeIntervalSinceNow:-
(24*60*60)];
}
_currentDate.text = [dateFormatter stringFromDate:dateAfterDecrement];
}
请推荐我。
您可以通过这种方式将当前日期减去您想要获得的天数
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
NSDateComponents *datecomponents = [calendar components:NSYearCalendarUnit
| NSMonthCalendarUnit | NSDayCalendarUnit
fromDate:[NSDate date]];
for (int i = 0; i < 5; ++i) {
NSDate *date = [calendar dateFromComponents:datecomponents];
NSLog(@"%@",date);
--datecomponents.day;
}
以下是显示今天日期和最近 4 天日期的方法。
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd, yyyy"];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
int DAY_TO_SECONDS = -60*60*24;
for (int n=0; n<5; n++)
{
NSDate* date = [[NSDate date] dateByAddingTimeInterval:DAY_TO_SECONDS*n];
NSString* dateString = [formatter stringFromDate:date];
NSLog(@"%@", dateString);
}
这会产生如下输出:
2015-02-23 13:18:30.657 ClientInfo[1418:557691] Feb 23, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 22, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 21, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 20, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 19, 2015
我正在尝试显示最近 5 天的日期。但它只显示最后日期(昨天)。我正在使用以下代码来显示它。
.h 文件:
NSInteger getDist;
NSString *lastdate;
NSDateFormatter *dateFormatter;
NSDate *sevenDaysAgo;
NSDate *dateAfterDecrement;
NSString *dateString;
int i;
viewDidLoad:
NSDate *currDate = [NSDate date];
dateFormatter = [[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@"dd.MM.YY"];
dateString = [dateFormatter stringFromDate:currDate];
_currentDate.text=dateString;
-(void)display
{
for(i=1;i<=5;i++)
{
lastdate = _currentDate.text;
[dateFormatter setDateFormat:@"dd.MM.YY"];
sevenDaysAgo = [dateFormatter dateFromString:lastdate];
dateAfterDecrement=[sevenDaysAgo initWithTimeIntervalSinceNow:-
(24*60*60)];
}
_currentDate.text = [dateFormatter stringFromDate:dateAfterDecrement];
}
请推荐我。
您可以通过这种方式将当前日期减去您想要获得的天数
NSCalendar *calendar = [NSCalendar autoupdatingCurrentCalendar];
NSDateComponents *datecomponents = [calendar components:NSYearCalendarUnit
| NSMonthCalendarUnit | NSDayCalendarUnit
fromDate:[NSDate date]];
for (int i = 0; i < 5; ++i) {
NSDate *date = [calendar dateFromComponents:datecomponents];
NSLog(@"%@",date);
--datecomponents.day;
}
以下是显示今天日期和最近 4 天日期的方法。
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM dd, yyyy"];
[formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
int DAY_TO_SECONDS = -60*60*24;
for (int n=0; n<5; n++)
{
NSDate* date = [[NSDate date] dateByAddingTimeInterval:DAY_TO_SECONDS*n];
NSString* dateString = [formatter stringFromDate:date];
NSLog(@"%@", dateString);
}
这会产生如下输出:
2015-02-23 13:18:30.657 ClientInfo[1418:557691] Feb 23, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 22, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 21, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 20, 2015
2015-02-23 13:18:30.658 ClientInfo[1418:557691] Feb 19, 2015