ホームページ >Java >&#&チュートリアル >Android/Java で日付の差を効率的に計算するにはどうすればよいですか?

Android/Java で日付の差を効率的に計算するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-21 06:02:09918ブラウズ

How to Efficiently Calculate the Date Difference in Android/Java?

Android/Java での日付の差の決定

2 つの日付の差を計算することは、さまざまなアプリケーションで共通の要件です。 Android プログラミングでは、現在の日付と「yyyy/mm/dd」形式の指定された日付の間の日数を決定する方法が複数あります。

JodaTime ライブラリの使用

信頼性が高く柔軟なソリューションとして、JodaTime ライブラリの利用を検討してください。堅牢な日付処理および操作機能を提供します。以下に例を示します。

import org.joda.time.LocalDate;
import org.joda.time.Period;
import org.joda.time.PeriodType;

LocalDate today = LocalDate.now();
LocalDate thatDay = LocalDate.parse("1985/08/25");

Period period = new Period(thatDay, today, PeriodType.days());
long days = period.getDays();

このアプローチでは、JodaTime を使用して指定された日付文字列を解析し、今日からの日数の差を計算します。

手動近似

または、次の手順を使用して手動で近似を試みることもできます。

  • 指定された日付文字列を年、月、日の個別の整数値に解析します。
  • 2 つのカレンダーを作成します。 1 つは現在の日付用、もう 1 つは指定された日付用のインスタンスを作成し、それぞれのフィールドを設定します。
  • 2 つの Calendar インスタンス間の時差をミリ秒単位で計算します。
  • 時差を1 日のミリ秒数 (24 60 60 * 1000) を使用しておおよその日数を取得します。

コード例:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
Date d = formatter.parse("1985/08/25");

Calendar thatDay = Calendar.getInstance();
thatDay.setTime(d);
Calendar today = Calendar.getInstance();

long diff = today.getTimeInMillis() - thatDay.getTimeInMillis();
long days = diff / (24 * 60 * 60 * 1000);

注: この手動による近似は、年または月の境界に近い日付については完全に正確ではない可能性があります。

以上がAndroid/Java で日付の差を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。