使用本周和周末在 2 个 NSDates 之间签到

Posted

技术标签:

【中文标题】使用本周和周末在 2 个 NSDates 之间签到【英文标题】:Using this week and weekend to check in between 2 NSDates 【发布时间】:2011-05-16 03:13:32 【问题描述】:

我作业的 NSDate 部分要求我根据用户选择的类别显示事件。类别是 - 今天、本月、本周和本周末。我已经完成了“今天”和“本月”,而我在其他两个方面遇到了麻烦。基本上我对每个事件都有一个日期范围(例如 fromDate = 03-04-2011 ,toDate = 03-11-2011)。我想做的是检查本周和本周末是否在日期范围之间。我用谷歌搜索了资源,但找不到我需要的东西。我知道我必须使用 NSCalendar,但我不知道该怎么做。

Detecting if NSDate contains a weekend day

^ 答案似乎是我正在寻找的,但我不知道如何使用它。对此或任何其他解决方案的任何帮助将不胜感激。谢谢

【问题讨论】:

【参考方案1】:
- (BOOL)checkForWeekend:(NSDate *)aDate 
  BOOL isWeekendDate = NO;
  NSCalendar *calendar = [NSCalendar currentCalendar];
  NSRange weekdayRange = [calendar maximumRangeOfUnit:NSWeekdayCalendarUnit];
  NSDateComponents *components = [calendar components:NSWeekdayCalendarUnit fromDate:aDate];
  NSUInteger weekdayOfDate = [components weekday];

  if (weekdayOfDate == weekdayRange.location || weekdayOfDate == weekdayRange.length) 
    // The date falls somewhere on the first or last days of the week.
    isWeekendDate = YES;
  
  return isWeekendDate;

用法:

BOOL isWeekend = [self checkForWeekend:[NSDate date]]; // Any date can be passed here.

if (isWeekend) 
  NSLog(@"Weekend date! Yay!");

【讨论】:

感谢详细的回复!有没有办法获得本周末的 NSDate?我需要将日期与我的活动日期进行比较,以检查它们是否介于两者之间。

以上是关于使用本周和周末在 2 个 NSDates 之间签到的主要内容,如果未能解决你的问题,请参考以下文章

使用iMindMap高效地结束本周的3个步骤

本周总结

商城签到功能的设计与实现

本周的java日历周末

本周小结!(二叉树)

Impala 获得 2 个日期之间的差异,不包括周末