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

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

  1. 任意の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. 与えられた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