我为我的日历应用程序创建了一个自定义日历...但我有一些问题,如果你帮我这样做,我将不胜感激,这段代码显示了一天。 例如第2天,第4天,第13天,第24天
- (NSString *) showPersianDay {
NSCalendar *persCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSPersianCalendar];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *IRLocal = [[NSLocale alloc] initWithLocaleIdentifier:@"fa_IR"];
[dateFormatter setLocale:IRLocal];
[dateFormatter setCalendar:persCalendar];
offsetComponents = [[NSDateComponents alloc] init];
offsetComponents.day = _dayNumber;
NSDate *nextDate = [persCalendar dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];
[dateFormatter setDateFormat:@"d"];
NSString *currDay = [dateFormatter stringFromDate:nextDate];
[NSString stringWithFormat:@"%@",currDay];
[persCalendar release];
[dateFormatter release];
return currDay;
}
我创建了一个月的自定义表格,显示了一个月的日期,因此当用户点按此数字时,我的日期应根据数字而变化,
例如今天是1月4日 - 当用户点击6 Jan时,我的日期应该更改为1月6日。
我不必使用某种方式:day.text = @"6"
或其他......我需要返回一个真正的DATE,如何修改我的代码以显示特定日期?
谢谢。
答案 0 :(得分:1)
也许你应该让类返回带有多个键的NSDictionary。一个键可以包含日期编号的字符串值,另一个键可以包含日期对象。
- (NSDictionary *) showPersianDay {
NSCalendar *persCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSPersianCalendar];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *IRLocal = [[NSLocale alloc] initWithLocaleIdentifier:@"fa_IR"];
[dateFormatter setLocale:IRLocal];
[dateFormatter setCalendar:persCalendar];
offsetComponents = [[NSDateComponents alloc] init];
offsetComponents.day = _dayNumber;
NSDate *nextDate = [persCalendar dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];
[dateFormatter setDateFormat:@"d"];
NSString *currDay = [dateFormatter stringFromDate:nextDate];
[NSString stringWithFormat:@"%@",currDay];
NSDictionary *results = [NSDictionary dictionaryWithObjectsAndKeys:currDay,@"dateString",nextDate,@"DateObj" nil];
return results;
}
然后在另一侧,您可以显示dateString并将DateObj缓存在日历单元格中。希望这能解决你的问题。