C++で指定された2つの日付の間の日数を検索します
この問題では、daesのDD-MM-YYYYを示す3つの整数で構成される2つの配列date1[]とdate2が与えられます。私たちのタスクは、指定された2つの日付の間の日数を見つけることです。
問題を理解するために例を見てみましょう
入力
date1[] = {13, 3, 2021}, date2[] = {24, 5, 2023}
出力
802
説明
違いは2年、2か月(3〜5)、11日です。
2*356 + (30 + 31) + 11 = 802
ソリューションアプローチ
この問題の簡単な解決策は、開始日date1からdate2まで、日数を数えてループすることです。そして値を返します。このアプローチは問題ありませんが、より効率的なアプローチがあります。
効率的なアプローチ
この問題へのより効率的なアプローチは、date1[]とdate2[]の両方の日付までの合計日数をカウントすることです。そして、両方の絶対差が結果をもたらします。
0000年1月1日から両方のdate1[]までの日数をカウントします。
年
年の最初の日までの日数date1[2]
Number of days = 365*(years) + no. of leap year
月
月の1日までの日数。月の配列から数えます。
Number of days = monthDays[date[1]].
monthDaysは、その月の最初の日付までの合計日数を格納します。
日付
日数。
これらすべての合計は、日付date1[]までの日数を示します。カウントの違いが結果です。
ソリューションの動作を説明するプログラム
例
#include <iostream> #include <math.h> using namespace std; const int monthDays[12] = { 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 }; int countLeapYearDays(int d[]){ int years = d[2]; if (d[1] <= 2) years--; return ( (years / 4) - (years / 100) + (years / 400) ); } int countNoOfDays(int date1[], int date2[]){ long int dayCount1 = (date1[2] * 365); dayCount1 += monthDays[date1[1]]; dayCount1 += date1[0]; dayCount1 += countLeapYearDays(date1); long int dayCount2 = (date2[2] * 365); dayCount2 += monthDays[date2[1]]; dayCount2 += date2[0]; dayCount2 += countLeapYearDays(date2); return ( abs(dayCount1 - dayCount2) ); } int main(){ int date1[3] = {13, 3, 2021}; int date2[3] = {24, 5, 2023}; cout<<"The number of days between two dates is "<<countNoOfDays(date1, date2); return 0; }
出力
The number of days between two dates is 802
-
任意の2つの指定された日付の間の日付の総数を見つけるPHPプログラム
「date_diff」関数を使用して、2つの日付の差を取得できます。これは、特定の日数が見つかった場合はDateIntervalオブジェクトを返し、日数が見つからなかった場合はFalseを返す組み込み関数です。 例 <?php $date_1 = date_create('23-11-2019'); $date_2 = date_create('22-1-2020'); $day_diff = date_diff($date_1, $date_2); echo $day_diff->format('The day difference is:
-
与えられた2つの日付の間の日数を見つけるPythonプログラム
2つの日付の間の日数を見つけるために、Pythondatetimeモジュールを使用しています。まず、必要なライブラリをインポートします- from datetime import date 日付オブジェクトを作成し、日数を計算する日付を入力します- date1 = date(2021, 7, 20) date2 = date(2021, 8, 30) 上記の2つの日付の差を日数の形式で取得します- (date2 - date1).days 例 以下はコードです- from datetime import date # both the dates date1 = date(2021