菜鸟教程小白 发表于 2022-12-12 12:46:19

ios - 从当前日期开始的 Swift 2.3 最近时间(高级或相等)


                                            <p><p>我必须确定 H 和 H+3,其中 H >= 到最近的小时。</p>

<p>让我给你举几个例子:</p>

<blockquote>
<p>if today&#39;s hour is 0h00 -&gt; H = 0h and H+3 = 3h</p>

<p>if today&#39;s hour is 0h01 -&gt; H = 1h and H+3 = 3h</p>

<p>if today&#39;s hour is 21h00 -&gt; H = 21h and H+3 = 0h</p>

<p>if today&#39;s hour is 22h34 -&gt; H = 23h and H+3 = 2h (day + 1)</p>
</blockquote>

<p>我是 Swift 的新手,我知道如何在 Obj C 中获得最近的小时数,但对于 Swift 我不确定。</p>

<p>有没有一种快速的方法来确定这两个变量 <strong>H</strong> 和 <strong>H+3</strong> 以便在任何给定时间设置两个标签的文本。</p>

<p>我试过这种方法,但它给了我最近的时间,但不是 >=。</p>

<pre><code>func nextHourDate() -&gt; NSDate? {
    let calendar = NSCalendar.currentCalendar()
    let date = NSDate()
    let minuteComponent = calendar.components(NSCalendarUnit.Minute, fromDate: date)
    let components = NSDateComponents()
    components.minute = 60 - minuteComponent.minute
    return calendar.dateByAddingComponents(components, toDate: date, options: [])
}
</code></pre>

<p>我正在使用 Swift 2.3 进行开发</p>

<p><strong>编辑:</strong> </p>

<p>阅读答案/评论后,这是我开发的内容。</p>

<pre><code>func determineH() -&gt; NSDate? {
      let gregorian = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
      let now = NSDate()
      let components = gregorian.components([.Year, .Month, .Day, .Hour, .Minute, .Second], fromDate: now)

      if components.minute != 0 {
            components.hour = components.hour + 1
            components.minute = 0
      }

      let date = gregorian.dateFromComponents(components)!
      return date
    }
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><h2>基于您的代码:</h2>
<p>检查当前小时的分钟并返回到最后一个完整小时,然后才添加!?</p>
<p>我不会提供那个<code>算术杰作</code>的代码,因为你已经差不多了</p>
<h2>最佳:更多地使用 dateComponents</h2>
<p>仅增加 hours 属性并将分钟重置为 0!?</p>
<pre><code>comps.hours += 1
comps.minutes = 0
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 从当前日期开始的 Swift 2.3 最近时间(高级或相等),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/41766958/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/41766958/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 从当前日期开始的 Swift 2.3 最近时间(高级或相等)