##全体
この記事は下の記事の一部です
##日時の取得
まず今日が何日かを取得する方法です。
var now :Date = Date()
これでDateというstructのnow(この名前はなんでもいい)という変数を宣言して、そこに初期値としてDate()という今の日時を取得できる関数で今のDateの値を代入しています。
##日時の表示
Date型をString型に変える処理をprintDayという関数を作って表示しています。
format(yyyyMMみたいな)を指定してString型に変更しているだけなので、printDayという名前はおかしいかなと思いましたが、他にいいものが思いつかなかったのでとりあえずこれでいきたいと思います。
この関数の引数はDate型とString型でそれぞれ
Date: Stringに直したいdate
String: format(yy.M.ddみたいな)
を指定しています。
DateFormatter型でformatter
という定数をDateFormatter()
で宣言して
このformatter
の
.calendar
というプロパティをCalendar
関数でgregorian
(グレゴリオ暦のこと)にして
.dateFormat
というプロパティに引数のf = "M/dd"
を代入して設定しています。
DateFormatter型の.String
メソッドを使ってDate型をString型に変更していると思われるんだけど詳しくわからなかったので要勉強。from:
のところがいまいちよくわからないです。
func printDay(d: Date, f: String) -> String {
let formatter :DateFormatter = DateFormatter()
formatter.calendar = Calendar(identifier: .gregorian)
formatter.dateFormat = f
return formatter.string(from: d as Date)
}
##表示する日付の変更
Date型のaddingTimeInterval
メソッドを使いたいんですけど、TimeInterval
ではDoubleを使って欲しいみたいなので、Doubleをあげています。秒数で管理しているので、n日変更したいときはn*24*60*60
のようにしてあげます。
func changeDay(d :Date, i: Double) -> Date {
let returnDate = d.addingTimeInterval(i*24*60*60)
return returnDate
}
##参考文献
https://developer.apple.com/documentation/foundation/timeinterval
https://www.ajinohiraki.info/entry/2018/09/17/012022
https://capibara1969.com/2100/
https://qiita.com/k-yamada-github/items/8b6411959579fd6cd995
↑printDay
関数はこの人のやつが最終形態に近いです。