10.12からCalendar構造体が使えるようになりました。どちらもマニュアルには同じようなことが書いてあって、正直その違いがよくわかりません。仕様のところで述べたとおり、このクラスは月配列を返すgetMonthly()と週配列を返すgetWeekly()があります。それぞれ生成する配列の対象年と月または週番号を与えてやるとその結果を返します。NSDateComponentsもSwift3になってからNSという接頭辞がなくなってDateComponentsになりました。NSCalendarさて、Dateで得られた一意の時間情報ですが、このNSCalendarによって設定されたlocaleに合ったタイムゾーンへの変換がおこなわれます。野望篇」のDateあたりをいじってみる。