📝

現在の年度をデータとして取得して使用する

2022/07/19に公開

実現したいこと

今回はタイトルの通り、現在の年度を取得し、それを変数データとして扱えるようにしたい。これを実装したいと思った背景は、現在開発している自作アプリにある。
「textLabelに表示されている日付を取得し変数に入れる→その日付の前に現在の年度を加え、Realm内でその日付に対応するデータをクエリ検索する→そのデータを取得して使用する」みたいな感じ。

実装方法

@IBOutlet weak var textLabel: UILabel! //"○月○日"という文字列を格納

var dateString: String = ""
var date: Date = Date()

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy年 M月d日(EEE)"
dateFormatter.locale = Locale(identifier: "ja_JP")
let calender = Calendar.current
let yearComponent = calender.dateComponents([Calendar.Component.year], from: Date())

dateString = "\(yeatComponent) \(textLabel.text ?? "")"
date = dateFormatter.date(from: dateString)
//👆このdateを利用してRealm内で該当するデータをクエリ検索(以降のコードは省略)

補足

公式のドキュメントによると、このCalenderクラスのdateComponentsを使用することによって、日付のコンポーネントをカプセル化し、任意のカレンダーの日付と時刻を構成する時間コンポーネント(時、分、秒、日、月、年 etc.)を扱うことができる。今回は年度だけを扱ったが、年度だけでなくその他のコンポーネントも扱うことができるので、他にもできることがありそうだ。

Discussion