如何使用iPhone中的当前日期(今天)获取今年,本月,本周的所有日期/日期

时间:2013-01-11 05:52:42

标签: iphone objective-c nsdate nsdateformatter

在我的申请表中,我必须在表格视图中按日期显示工作时间列表

这里我有5个场景

  1. 今天的项目,工作时间
  2. 选定的日期项目,小时
  3. Cureent周(周日至周六)
  4. 当月(1月的工作时间,如果是3月的话,是2月份的工作时间)
  5. 本年度(2013年所有工作时间)
  6. 我已经实现了如下的sqlite查询,

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

    2。从ProjDetailsTable中选择Date,ProjectTitle,WorkingHours,sum(WorkingHours),其中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日至今

    今年: Jan-1-2020到今天

2 个答案:

答案 0 :(得分: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];
  }

答案 1 :(得分:0)

您可以使用它来获取当前年份&月。 如我朋友所建议的那样,只需将这些添加到之前的答案中即可。

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

现在,我想如果你今年和今年都有。月份,您可以手动设置第1个日期。并按你的意愿行事。

主要是工作日... 感谢。