gpt4 book ai didi

ios - 如果年份是特定值,则执行不同的功能

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

我有以下代码行,它将内容或标签设置为日期。

cell.birthdayLabel.text = [[GlobalBirthdaysEditor instance] getFormattedDateString:[birthday getDate]];

我需要找出年份是否等于 1604,如果是,则不显示。

如何从该对象中提取年份,然后更改结果,使其仅打印月份和日期?

到目前为止我的代码是:

NSString *dateString = [[GlobalBirthdaysEditor instance] getFormattedDateString:[birthday getDate]];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:dateString];
[dateFormatter release];

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];

NSInteger year = [components year];

if (year == 1604)
{
cell.birthdayLabel.text = yearStr; //SHOULD OUTPUT JUST MONTH AND DAY
} else {
cell.birthdayLabel.text = [[GlobalBirthdaysEditor instance] getFormattedDateString:[birthday getDate]];
}

但这不起作用。它运行了,但日期始终是第二个。这是为什么?

谢谢!

最佳答案

您的代码有一些问题。应该是:

NSDate *date = [birthday getDate];
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:date];
NSInteger year = [components year];

if (year == 1604) {
// Adjust this as needed
NSString *yearStr = [NSString stringWithFormat:@"%d", year];
cell.birthdayLabel.text = yearStr; //SHOULD OUTPUT JUST MONTH AND DAY
} else {
NSString *dateString = [[GlobalBirthdaysEditor instance] getFormattedDateString:date];
cell.birthdayLabel.text = dateString;
}

主要问题是您将新日期传递给 components: 方法调用,而不是传递实际日期。

没有理由在 NSStringNSDate 之间来回切换。由于您已经有权访问 NSDate,因此请使用它。

关于ios - 如果年份是特定值,则执行不同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16404693/

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