我正在为我的学校制作应用程序。我们正在进行为期7天的轮换时间表...所以今天是G日,明天将是A日,B,星期五,星期一和星期一回到D.我想在我的应用程序的主页上放置一个UILabel将根据我们学校的AG表示法输出哪个“日期”......任何人都可以想到这样做的方法(初学者会理解)?
问题在于周一并不总是“A”日,因为我们进行了7天的周期,但每周只有5天上学。有什么方法吗?
我目前使用NSDateFormatter连接到一个字符串然后连接到UILabel以显示当周的当天,如果这有帮助的话。代码如下。
- (void)viewDidAppear:(BOOL)animated
{
//get the date today
NSDateFormatter *dateformatter = [[NSDateFormatter alloc] init];
[dateformatter setDateFormat:@"cccc, MMMM dd"];
NSString *dateToday = [dateformatter stringFromDate:[NSDate date]];
[currentdate setText:dateToday];
//get the time today
NSDateFormatter *timeformatter = [[NSDateFormatter alloc] init];
[timeformatter setDateFormat:@"hh:mm a"];
NSString *timeToday = [timeformatter stringFromDate:[NSDate date]];
[currenttime setText:timeToday];
问题:
我会使用“setText:”将其输出到标签吗?我在我的.h中宣布了一个名为* letterday的插座,现在我正在尝试将这封信寄给它,然后在我的.m中:
[NSDate JL_currentRotationDayWithSchoolYearBeginningOnDateString:@"2011-09-12"];
[letterday setText:
看起来不错吗?对不起我就这么落后了......
答案 0 :(得分:2)
您可以在此处使用评论https://gist.github.com/1590955
查看整个类别的源代码 #import "NSDate+RotationScheduleFormatter.h"
在您要使用该类别的每个实现文件中。然后使用以下方法调用获取当前轮换日:
[NSDate JL_currentRotationDayWithSchoolYearBeginningOnDateString:@"2011-08-01"];
其中日期的格式为YYYY-MM-DD
。
这将返回RotationDay
类型的枚举,kRotationDay[A-G]
之一。
为了让假期休假和其他工作日下班,您需要进入.m文件并编辑名为+ (int)numberOfWeekdayBreakDaysBetweenSchoolYearBeginningDate:(NSDate *)beginningDate andEndDate:(NSDate *)endDate1
的方法
在其中,您将看到一个名为weekdayBreakArray
的数组,其中包含一些值(格式为YYYY-MM-DD
)。删除这些测试值,并在工作日的每个休息日的每一天添加。 不要添加周末的日期。
<强>实施强>
假设存在名为UILabel
的{{1}},您可以执行以下操作:
rotationLetter
以及更多RotationDay rotationDayInt = [NSDate JL_currentRotationDayWithSchoolYearBeginningOnDateString:@"2011-08-01"];
if (rotationDayInt == kRotationDayA) {
[rotationLetter setText:@"A"];
}
else if (rotationDayInt == kRotationDayB) {
[rotationLetter setText:@"B"];
}
语句,直至到达else if
。
备注:强>
请记住在if语句中附加对此方法的调用,该语句检查您是在假期或周末,否则结果将不正确。另请注意,我没有使用手动保留/释放来优化此类用于内存管理,因为我不确定您是否使用ARC。 此外,如果您有下雪天或其他意外休息时整个系统都会失败,您无法及时更新应用。因此,我强烈建议您每次打开应用程序时从服务器下载日期数组,以防您需要动态更改。