2017-05-19 42 views
0
  • 我從日期選擇器中獲取日期和時間,並且我已將它設置爲爲字符串格式。
  • 我想在給定的日期和時間添加事件。
  • 我想設置兩個提醒,提醒之前給予特定的時間,如「5分鐘,15分鐘,30分鐘」。 事件時間第二次提醒。
  • 在下面的代碼中,我需要做什麼來完成我的要求。

給出任何建議或想法solev它 感謝如何在特定時間和日期添加日曆事件?

獲取日期和時間從日期選擇器

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) 

創建和保存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") 
    } 
+0

您正在從datePicker獲取日期。你爲什麼要格式化爲一個字符串來保存它,然後將其格式化回日期以使用它?我將它保存爲日期並將其格式化爲僅用於顯示目的的字符串(如在UILabel上顯示它) – pesch

+0

我知道但我應該爲我的解決方案做些什麼? @pesch – hardik

回答

1

嘗試將日期保存爲日期:

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

然後使用這些創建活動:

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 
} 

而且,你的事件的創建不應該是你的DateFormatter的聲明中。

+0

根據你的答案,它只設置事件的時間。什麼具體日期和時間的事件?我有兩個日期選擇器,一個日期和一個時間。兩者都是分開的(參見我的代碼)。我想添加一次活動,例如:(2017年5月19日,時間爲下午5:15)。所以我怎麼做到這一點?請幫助我 – hardik

+1

看看這個:http://stackoverflow.com/questions/14597500/how-to-combine-date-and-time-from-two-uidatepickers – pesch

+0

以上你的回覆幫助我,節省我的時間也。你能幫我添加警報嗎?我想在我的問題上面提到的兩個警報 – hardik

相關問題