简体   繁体   English

如何在特定时间和日期添加日历活动?

[英]how to add calendar event on specific time and date?

  • i get date and time from date-picker and i have set it into string format. 我从日期选择器获取日期和时间,我已将其设置为字符串格式。
  • i want to add event in given date and time. 我想在给定的日期和时间添加事件。
  • i want to set two alert, 1 alert on before given specific time like "5 minute, 15 minute, 30 minute". 我想在给定的特定时间之前设置两个警报, 1个警报,如“5分钟,15分钟,30分钟”。 2 second alert on event time. 事件时间的2秒警报。
  • In below code what should i need to do for complete my requirement. 在下面的代码中,我需要做什么才能完成我的要求。

give any suggestion or idea to solev it Thanks 提出任何建议或想法,以谢谢它谢谢

get date and time from date-picker 从日期选择器获取日期和时间

let dateFormatter = DateFormatter()

    dateFormatter.dateFormat = "YYYY-MM-dd"
    routineDate = dateFormatter.string(from: self.datetimepicker.date)
    print(routineDate)

  let dateFormatter = DateFormatter()

    dateFormatter.dateFormat = "HH:mm a"
    routineTime = dateFormatter.string(from: self.datetimepicker.date)
    print(routineTime)

create and save EKEvent Here: 在这里创建并保存EKEvent:

 let dateFormatter = DateFormatter()
    dateFormatter.dateStyle = .short
    dateFormatter.dateFormat = "YYYY-MM-dd"
    let startDATE = dateFormatter.date(from: routineDate)
    let endDATE = dateFormatter.date(from: routineDate)

    print(routineDate)
    if temptypeID == "1" {
        let event:EKEvent = EKEvent(eventStore: appleEventStore)
        event.title = tempDescription

    //  what should i need to change here for specific date and time?

        event.startDate = (startDATE?.addingTimeInterval(60*60))!
        event.endDate = (endDATE?.addingTimeInterval(60*60))!
        event.isAllDay = false
        event.notes = "This is a note"
        event.calendar = cal

        do {
            try appleEventStore.save(event, span: .thisEvent)
            print("events added with dates:")

         // what should changes i need to do here for alert ?

            let alarm = EKAlarm(absoluteDate: Date(timeInterval: -3600, since: event.startDate))

        event.addAlarm(alarm)

        } catch let e as NSError {
            print(e.description)
            return
        }
        print("Saved Event")
    }

Try saving your dates as Date: 尝试将日期保存为日期:

let startDate = self.datetimepicker.date
let endDate = startDate.addingTimeInterval(3600 as TimeInterval)

Then use these to create your event: 然后使用它们来创建您的活动:

let event:EKEvent = EKEvent(eventStore: appleEventStore)
event.title = tempDescription

//  what should i need to change here for specific date and time?

event.startDate = startDate
event.endDate = endDate
event.isAllDay = false
event.notes = "This is a note"
event.calendar = cal

do {
    try appleEventStore.save(event, span: .thisEvent)
    print("events added with dates:")

    // Adding an Alert 1 hour before the startDate
    let reminder = EKAlarm(relativeOffset: -3600)
    event.addAlarm(reminder)
    print("Saved Event")
} catch let e as NSError {
    print(e.description)
    return
}

Also, the creating of your event should not be inside your DateFormatter declaration. 此外,您的事件的创建不应该在DateFormatter声明中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM