Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 获取“NSDate”表示形式的最简单方法;将发生的下一个上午7点;可可粉?_Objective C_Cocoa_Macos - Fatal编程技术网

Objective c 获取“NSDate”表示形式的最简单方法;将发生的下一个上午7点;可可粉?

Objective c 获取“NSDate”表示形式的最简单方法;将发生的下一个上午7点;可可粉?,objective-c,cocoa,macos,Objective C,Cocoa,Macos,我想我可以通过使用NSCalendar和NSDateComponents来实现我想要的,但这将运行如下操作: 现在就开始 从“现在”创建一个NSDateComponents 如果“现在”是早上7点之前,那么使用今天的日期 如果“现在”是早上7点以后,使用明天的日期。 如果今天是该月的最后一天,则增加月份,将天设置为1。 如果是12月,每年也增加1 设定小时、分钟、秒 创建新的NSDate 这一切似乎都很冗长,但这似乎是这里的其他答案所暗示的,而文档并没有提供任何线索。我在我能找到的所

我想我可以通过使用
NSCalendar
NSDateComponents
来实现我想要的,但这将运行如下操作:

  • 现在就开始
  • 从“现在”创建一个
    NSDateComponents
  • 如果“现在”是早上7点之前,那么使用今天的日期
  • 如果“现在”是早上7点以后,使用明天的日期。
    • 如果今天是该月的最后一天,则增加月份,将天设置为1。
      • 如果是12月,每年也增加1
  • 设定小时、分钟、秒
  • 创建新的
    NSDate
这一切似乎都很冗长,但这似乎是这里的其他答案所暗示的,而文档并没有提供任何线索。我在我能找到的所有日期和日历类之间来回走动


有没有一个简单的方法来询问“下一个发生在早上7点”的问题?

我还没有尝试过,但我认为这会奏效:

  • 现在开始约会
  • 从现在开始创建
    NSDateComponents
  • 将小时组件设置为7
  • 将7am日期组件转换回
    NSDate
  • 如果早上7点的日期比现在晚,你就完了
  • 否则,请使用
    -[NSCalendar dateByAddingComponents:options:][/code>将上午7点的日期提前一天
如果夏令时在早上7点到下一个7点之间发生变化,我不确定最后一步是否正确