iOS
 Computer >> コンピューター >  >> プログラミング >> iOS

iOSで2つの日付の差分を取得する方法を解説【Swift入門】

iOSアプリ開発で2つの日付の差分を計算するには?

日付同士の差分を求めるのは、実はとてもシンプルです。重要なのは、DateFormatterCalendarという2つのクラスを正しく使いこなすことです。本記事では、Swiftを使って2つの日付の差分(日数)を取得する手順を、サンプルコード付きでわかりやすく解説します。

DateFormatterクラスとは

まず活用するのが、Foundationフレームワークに含まれる DateFormatter クラスです。DateFormatterは、Dateオブジェクトを文字列形式に変換したり、逆に日付・時刻のテキスト表現をDateオブジェクトへ変換したりする役割を担います。

詳細については、Appleの公式ドキュメントをご参照ください。
DateFormatter – Apple Developer Documentation

Calendar構造体とは

次に、日付の差分計算に使用するのが Calendar 構造体です。Calendarは年月日や時刻といった日付要素の抽出・演算を行うための強力なAPIを備えており、Appleも充実したドキュメントを公開しています。
Calendar – Apple Developer Documentation

実装手順:Xcode Playgroundで試してみよう

それでは早速実装してみましょう。Xcodeを開いて新しいPlaygroundを作成し、以下のコードをコピー&ペーストしてください。

import UIKit

// DateFormatterとCalendarのインスタンスを作成
let formatter = DateFormatter()
let calendar = Calendar.current

// 日付のフォーマットを指定
formatter.dateFormat = "dd-MM-yyyy"

// 開始日を指定
let startDate = formatter.date(from: "10-08-2018")

// 終了日を指定
let endDate = formatter.date(from: "23-09-2019")

print(startDate!)
print(endDate!)

// 2つの日付の差分を「日」単位で取得
let diff = calendar.dateComponents([.day], from: startDate!, to: endDate!)

// 差分を出力
print(diff)

コードの解説

このコードでは、まず dateFormat プロパティに "dd-MM-yyyy" を設定し、「日-月-年」形式の文字列からDateオブジェクトを生成しています。ここでは 2018年8月10日 を開始日、2019年9月23日 を終了日としています。

続いて、calendar.dateComponents(from:to:) メソッドを呼び出すことで、開始日から終了日までの間隔を DateComponents 型として取得できます。第1引数の [.day] は「日単位の差分がほしい」という指定です。月や年など他の単位が必要な場合は、[.year][.month] を組み合わせて指定することも可能です。

最後に結果を出力すると、コンソールに2つの日付の差分が表示されます。このように、DateFormatterとCalendarを組み合わせるだけで、iOSアプリでの日付差分の計算は簡単に実装できます。

  1. Androidで2つの地理的な地点間の距離を取得する方法

    この記事では、Androidアプリで2つの地理的な地点(緯度・経度)の間の距離を取得し、画面に表示する方法を解説します。Androidフレームワークが提供するLocationクラスのdistanceTo()メソッドを使うと、2地点間の距離を簡単に計算できます。 ステップ1:新しいプロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。 ステップ2:activity_main.xmlにコードを追加する res/layout/activity_main.xmlに

  2. Excelで2つの日付間のうるう年の数を計算する方法

    企業、官公庁、イベント主催者などにとって、リストの中にうるう年がいくつ含まれているのかを把握しておくことは重要です。Excelで2つの日付の間に含まれるうるう年の数を確認したい場合は、ぜひこの記事をご覧ください。 うるう年は平年に比べてわずか1日多いだけですが、その影響はさまざまな計算に及びます。多くの企業では、うるう年かどうかによって給与計算が変わり、ビジネスの利益計算にも影響が出ることがあります。 Excelで2つの日付間のうるう年数を計算する Excelで2つの日付間のうるう年の数をカウントするには、次の数式を使用します。 =DATE(YEAR(<終了日のセル>),1,1)-