我们怎样才能获得当天特定日期的日期名称(星期一和星期日之间)?例如我想知道这个星期天的日期是什么,或者是星期一上午的日期。
编辑:这是我如何在@juniperi的链接的帮助下解决问题的//To get current day
CFAbsoluteTime at = CFAbsoluteTimeGetCurrent();
CFTimeZoneRef tz = CFTimeZoneCopySystem();
SInt32 currentWeekdayNumber = CFAbsoluteTimeGetDayOfWeek(at, tz);
//We are adding or substracting from the day we want and add to the current date
NSDate *now = [NSDate date];
int daysToAdd = theDayNumberWeWant - currentWeekdayNumber;
NSDate *newDate1 = [now dateByAddingTimeInterval:60*60*24*daysToAdd];
答案 0 :(得分:2)
int yourDOW = [[[NSCalendar currentCalendar] components:NSWeekdayCalendarUnit
fromDate:yourDate] weekday];
这就是你可以获得当天日期的方式,例如:星期一,星期二等等。
根据这一点,您可以计算下一个/上一天和/或日期,两者:
例如:
(星期日以1代表。)2014年6月20日是星期五,结果是 6.那就意味着上周一是:date - (currentDay - requiredDay)= 20 - (6(周五) - 2(星期一))= 20 - (4)= 16
这意味着,2014年6月16日是最后一个星期一。
希望这会有所帮助。有关详细信息,请参阅NSDateComponents.
答案 1 :(得分:1)
通过您的日期此方法将返回此日期存在的第一天的日期。如果您通过当前日期,您将获得当周第一天的日期。像这样你可以计算其他日子的日期。
+ (NSDate *) getFirstDayOfTheWeekFromDate:(NSDate*)givenDate
{
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit fromDate:givenDate];
[components setWeekday:1];
[components setWeek:[components week]];
return [calendar dateFromComponents:components];
}