我正在编写一个警报应用程序。在应用程序中,用户可以选择日期以在当天设置闹钟。但我不知道为一周中的特定日期设置 UILocalNotification 。
我如何知道重复间隔。我知道我必须设置
如何计算星期五将有多少天?
我正在编写一个警报应用程序。在应用程序中,用户可以选择日期以在当天设置闹钟。但我不知道为一周中的特定日期设置 UILocalNotification 。
我如何知道重复间隔。我知道我必须设置
如何计算星期五将有多少天?
您可以计算两个日期之间的天数,如下所示:
NSDateComponents *dateComponents = [[NSCalendar currentCalendar] components:NSDayCalendarUnit
fromDate:today
toDate:futureDate
options:0];
NSInteger daysBetweenDates = dateComponents.day;
如何从现有的 NSDate 获取特定星期几和时间的 NSDate - 本文将帮助您解决这个问题。您可以通过以下方式从当前星期五获得 NSDate:
NSDate *today = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setLocale:[NSLocale currentLocale]];
NSDateComponents *nowComponents = [gregorian components:NSYearCalendarUnit | NSWeekCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit fromDate:today];
[nowComponents setWeekday:6];
[nowComponents setWeek: [nowComponents week]]; // Current week
[nowComponents setHour:8]; // 8a.m.
[nowComponents setMinute:0];
[nowComponents setSecond:0];
NSDate *thisWeekFriday = [gregorian dateFromComponents:nowComponents];
然后,您可能要检查是否thisWeekFriday
小于[NSDate date]
,如果是,则获取下周五。您可以通过以下方式将日期移动一周:
NSDateComponents *components = [[NSDateComponents alloc] init];
components.week = 1;
NSDate *nextWeekFriday = [gregorian dateByAddingComponents:components toDate:thisWeekFriday options:0];