【发布时间】:2021-02-05 17:36:53
【问题描述】:
我正在尝试发送带有本地通知的特定消息,这取决于星期几,现在我的代码必须知道它是星期几才能发送通知。
谢谢。
【问题讨论】:
标签: swift swiftui uilocalnotification
我正在尝试发送带有本地通知的特定消息,这取决于星期几,现在我的代码必须知道它是星期几才能发送通知。
谢谢。
【问题讨论】:
标签: swift swiftui uilocalnotification
您可以像这样获取当前日期的单个组件(在我们的例子中是星期几):
if Calendar.current.component(.weekday, from: Date()) == 1 {
// Yay, it's Sunday!
}
来自文档:“工作日单位是数字 1 到 N(公历 N=7,1 是星期日)。”
【讨论】:
UNTimeIntervalNotificationTrigger需要一个时间间隔。我假设您想在即将到来的工作日触发通知。 Calendar 和 DateComponents 帮助您计算该间隔。
let nextDate = Calendar.autoupdatingCurrent.nextDate(after: Date(), matching: DateComponents(hour: 10, weekday: 1), matchingPolicy: .nextTime); let interval = nextDate?.timeIntervalSinceNow; let trigger = UNTimeIntervalNotificationTrigger(timeInterval: interval, repeats: false)
看起来你想要这个(或其他日期)
if let weekDay = Calendar.current.dateComponents([.weekday], from: Date()).weekday {
// do this what's needed
}
【讨论】:
.weekday 组件,但返回了 .date 组件。