前提・実現したいこと
以下のフォーマットの与えられた文字列を元に
リピートするローカル通知を受け取るタイミングを設定したいです
与えられた文字列の曜日に該当する当日及び前日にリピートする通知を設定したいです
与えられる文字列のフォーマットは次の2パターンを想定しております
パターン1 "◯曜日" (◯には月・火・水・木・金・土・日のどれかが入る)
パターン2 "第□◯曜日" (◯は上記と同様、□には1・2・3・4・5のどれかが入る)
例:
"月曜日" → 毎週の当日の月曜日と前日の日曜日に通知を飛ばす
"木曜日" → 毎週の当日の木曜日と前日の水曜日に通知を飛ばす
"第1木曜日" → 毎月の当日の第1木曜日と???(ここの求め方がわかりませんでした)
"第1木曜日"の入力に対して、必ずしも第1水曜日が前日ではないため
"第□◯曜日"のフォーマットで入力されたときの、前日の算出方法が知りたいです
正規表現を用いて、パターン1・2の文字列が与えられたときに
パターン1については◯部分をInt型で抽出
パターン2については□と◯部分をInt型で抽出するところまではできております
手詰まりなため、ご教示頂けると幸いです。
該当のソースコード
Swift
1var notificationTime = DateComponents() 2notificationTime.hour = 12 3notificationTime.minute = 0 4/* 5通知を受け取る日を決める 6 7//月曜日 8let str = "月曜日" 9notificationTime.weekday = 2 10 11//水曜日 12let str = "水曜日" 13notificationTime.weekday = 4 14 15//第1木曜日 16let str = "第1木曜日" 17notificationTime.weekday = 5 18weekdayOrdinal = 1 19 20*/ 21 22let trigger = UNCalendarNotificationTrigger(dateMatching: notificationTime, repeats: true) 23let content = getContent() 24let request = UNNotificationRequest(identifier: "Notification_(counter)", content: content, trigger: trigger) 25UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/26 11:53
2018/12/27 00:19
2018/12/27 14:59