gpt4 book ai didi

ios - 从周数获取日期,部分标题数为周数

转载 作者:行者123 更新时间:2023-11-29 11:21:01 25 4
gpt4 key购买 nike

好的...所以我正在尝试使用 UITableView 并将其分成 52 个部分.. 一年 52 周...每个部分一周有 7 天(单元格)。我想让每个 sectionHeader 都说“'月日,年'的星期”。每次我尝试在相应周的 headerSection 中打印字符串时,什么也没有显示。有什么方法可以使用标题部分编号将那一周日期的第一天设置到部分标题中?下面是我一直试图开始工作的代码......这似乎是有道理的。但我做错了什么。我真的很感激任何帮助。提前谢谢你。

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
NSDate *now = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now];
[comp setWeek:section];
[comp setDay:1];
NSDate *resultDate = [gregorian dateFromComponents:comp];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"EEE, MMM d, ''yy"];

NSString *myDateString = [formatter stringFromDate:resultDate];

NSString *sectionHeader = nil;

switch (section) {
case 0:
sectionHeader = myDateString;
break;
case 1:
sectionHeader = myDateString;
break;
case 2:
sectionHeader = myDateString;
break;
default:
break;
}

return sectionHeader;
}

最佳答案

我不确定您为什么决定在代码中使用 switch 语句,但它绝对没有任何用处,而且至少会导致您的一些问题。除了三周(您的 switch 语句中涵盖的三种情况)之外的所有时间,您的 titleForHeaderSection: 方法将返回 nil。相反,你应该尝试这样的事情:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
NSDate *now = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *comp = [gregorian components:NSYearCalendarUnit fromDate:now];

[comp setWeek:(section + 1)]; // section numbers start at 0, so need to add 1
[comp setWeekDay:1]; // Note that this is very different than setting day to 1

NSDate *resultDate = [gregorian dateFromComponents:comp];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM d, yyyy"];

NSString *myDateString = [formatter stringFromDate:resultDate];

[gregorian release]; // Clean up allocated objects by releasing them
[formatter release];

return [NSString stringWithFormat:@"Week of %@", myDateString];
}

请注意,我在上方设置的是工作日而不是日期,因为我相信您正在尝试获取该周第一天的日期。

关于ios - 从周数获取日期,部分标题数为周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7157560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com