了解 date(byAdding:to:wrappingComponents:) 方法中的"包装组件"



根据Apple Doc,'wrappengComponents'参数用于此目的:

如果为true,则组件应递增并环绕到溢出时为零/一,并且不应导致更高的组件递增。默认值为false。

我很难理解的是"溢出"部分。这种溢出是什么?这种溢出是何时发生的?Apple Doc目前没有在其文档中解释这一部分。

谢谢你提前回答。

"溢出";意味着添加日期组件的结果超出了该组件的允许范围。例如,在6月30日之前增加5天是一个"错误";溢出";因为6月35日不存在。其他示例包括将7小时添加到18:00,将4个月添加到12月,等等。这也适用于减法。

默认情况下(包装组件=false(,较大的组件会增加:如果在6月30日之前增加5天,则会得到July5:

然而,如果您将其设置为true,则会环绕,这意味着较大的组件不会改变——您将在6月5日收到。

今天对我来说是6月8日。加上29天的包装组件,6月7日:

let newDate = Calendar.current.date(byAdding: DateComponents(day: 29), to: Date(), wrappingComponents: true)
print(newDate)

最新更新