我想获取当前的周数并将其显示在我的应用中.网上有很多使用旧的WeekOfYearCalendarUnit的例子,它可以解决我的问题,但在真正的Apple时尚中,它已被弃用,并且没有提供替代方案.我设法将这个功能从今年几周的至少显示中删除.但不是现在的那个.
func weekYear(){
let weekRange = NSCalendar.current.range(of: .weekOfYear, in: .yearForWeekOfYear, for: Date())
print("\(weekRange?.count)")
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在xcode 8.1中使用swift 3获取当前周数?
如何检查是否NSDate落在一年中的本周?我在下面尝试过,但上周的日期也符合"Date is in this week"条件。
- (NSInteger)thisW:(NSDate *)date
{
NSCalendar *gregorian = [[NSCalendar alloc]
initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todaysComponents =
[gregorian components:NSWeekCalendarUnit fromDate:[NSDate date]];
NSUInteger todaysWeek = [todaysComponents weekday];
NSDateComponents *otherComponents =
[gregorian components:NSWeekCalendarUnit fromDate:date];
NSUInteger datesWeek = [otherComponents weekday];
NSLog(@"Date %@",date);
if(todaysWeek==datesWeek){
//NSLog(@"Date is in this week");
return 1;
}else if(todaysWeek+1==datesWeek){
//NSLog(@"Date is in next week");
return 2;
} else {
return 0;
}
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序,希望得到日(即Sunday,Monday等)之日起.
我的代码如下:
NSDate *currentDate = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
//ask for current week
NSDateComponents *comps = [[NSDateComponents alloc] init];
comps=[calendar components:NSWeekCalendarUnit|NSYearCalendarUnit fromDate:currentDate];
//create date on week start
NSDate* weekstart=[calendar dateFromComponents:comps];
//add 7 days
NSMutableArray* week=[NSMutableArray arrayWithCapacity:7];
for (int i=1; i<=7; i++) {
NSDateComponents *compsToAdd = [[NSDateComponents alloc] init];
compsToAdd.day=i;
NSDate *nextDate = [calendar dateByAddingComponents:compsToAdd toDate:weekstart options:0];
NSLog(@"%@",nextDate); // date is 2013-06-30 18:30:00 +0000
NSDateFormatter *myFormatter = [[NSDateFormatter alloc] init];
[myFormatter setDateFormat:@"EEEE"]; // day, …Run Code Online (Sandbox Code Playgroud)