Swiftで行こう!-あと何日?
Pythonで残りの日数を計算しましたが、次にSwiftでやってみましょう!
まず、指定日を決めます。
let startDate = "2020-7-24"
"2020-7-24"を日ずけと認識させないといけないので、
let dateFormatter = DateFormatter()
DateFormatter() でインスタンス化してを使います。
dateFormatter.dateFormat = "yyyy-MM-dd"
これでstartDate は文字列であり"yyyy-MM-dd"形式の日付が入っていることを教え、"2020-7-24"を入れました。これを、比較が出来ないのでDate()と認識できるように変換します。
let formatedStartDate = dateFormatter.date(from: startDate)
次に比較対象、今日の日付を取得、変数に入れます。
let currentDate = Date()
そして比較するもの、今回は日、あと何日あるかを調べたいのでcomponentsを".day"としています。
そして差分を求めます。
let differenceOfDate = Calendar.current.dateComponents([.day], from: currentDate, to: formatedStartDate!)
最後に出力します。
print (differenceOfDate)
全コードです。
import Foundation
let startDate = "2020-7-24"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let formatedStartDate = dateFormatter.date(from: startDate)
let currentDate = Date()
let elapsedDays = Calendar.current.dateComponents([.day], from: currentDate, to: formatedStartDate!).day!
print(elapsedDays)
日付について以下参考サイトです。
最後に流れをまとめておきます。
まず比較対象とする日にちが文字列で与えられているので、DateFormatter()で文字列からDate()が認識できるデータに変換してやります。要するに比較する準備を整えるということですね。次に比較する日付の準備ですが、今回は"今日"ということにしているのでDate()を使います。これ使うとそのままデータとして使えるので、あとは経過時間を
Calendar.current.dateComponents()
で求めます。[.day]の部分を
.year, .month, .day, .hour, .minute, .second
などに変更、追加することで知りたい情報を取得出来ます。
最後にprint関数で出力します。
要するに文字列をデータにしてやり比較、経過時間を計算しているということです。
この記事が気に入ったらサポートをしてみませんか?