0

在我的应用程序中,我必须在表格视图中按日期显示工作时间列表,

这里我有5个场景

  1. 今天的项目,工作时间
  2. 选定日期项目,小时
  3. 当前周(周日至周六)
  4. 当月(1月工作时间,2月2月3月3月)
  5. 当年(2013年所有工作时间)

我已经实现了如下的 sqlite 查询,

1. 从 ProjDetailsTable 中选择 Date, ProjectTitle, WorkingHours, sum(WorkingHours) where date = toDaysDate

2. 从 ProjDetailsTable 中选择 Date, ProjectTitle, WorkingHours, sum(WorkingHours) where date = selecteDate

I have done for the fist two scenarions

对于 3,4,5 场景


3. Select Date, ProjectTitle, WorkingHours, sum(WorkingHours) from ProjDetailsTable where 
Date between two Dates

但我的问题是如果我有日期

Is there any logic to get the starting for
current week, current month, current year

注意:不是 7 天前,不是 30 个月前,也不是 365 天前。

我的要求是:

if Current date is Feb-13-2020 WednesDay

本周: 2月9日至今天

本月: 2 月 1 日至今天

今年: 2020 年 1 月 1 日至今

4

2 回答 2

3

我希望这会给你一个基本的想法,你必须如何进行:对于其他情况,你可以解决

- (NSDate *)firstDayOfWeekFromDate:(NSDate *)date {
      NSCalendar* calendar = [NSCalendar currentCalendar];
      NSDateComponents* comps = [calendar components:NSYearForWeekOfYearCalendarUnit |NSYearCalendarUnit|NSMonthCalendarUnit|NSWeekCalendarUnit|NSWeekdayCalendarUnit fromDate:date];

     [comps setWeekday:2]; // 2: monday
     return [calendar dateFromComponents:comps];
  }
于 2013-01-11T05:58:23.900 回答
0

您可以使用它来获取当前年份和月份。只需按照我朋友的建议将这些添加到以前的答案中即可。

NSInteger year = [comps year];
NSInteger month = [comps month];

现在,我认为如果您获得当前年份和月份,您可以手动设置第一个日期。并随心所欲地表演。

主要是得到工作日..谢谢。

于 2013-01-11T06:21:47.290 回答