見出し画像

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関数で出力します。

要するに文字列をデータにしてやり比較、経過時間を計算しているということです。

この記事が気に入ったらサポートをしてみませんか?