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

ツェラーのアルゴリズムを使用して平日を見つける


ツェラーのアルゴリズムは、特定の日付から平日を見つけるために使用されます。ツェラーのアルゴリズムを使用して平日を見つける式は次のとおりです。

ツェラーのアルゴリズムを使用して平日を見つける

式にはいくつかの変数が含まれています。彼らは-

d −日付の日。

m:月コードです。 3月から12月までは3から12、1月は13、2月は14です。1月または2月を考慮すると、指定された年は1減少します。

y −年の最後の2桁

c −年の最初の2桁

w −平日。 0の場合は土曜日、6の場合は金曜日を意味します

入力と出力

Input:
The day, month and the year: 4, 1, 1997
Output:
It was: Saturday

アルゴリズム

zellersAlgorithm(day, month, year)

入力: その日の日付。

出力: どちらの日でしたか(日曜日から土曜日)。

Begin
   if month > 2, then
      mon := month
   else
      mon := 12 + month
      decrease year by 1
   y := last two digit of the year
   c := first two digit of the year
   w := day + floor((13*(mon+1))/5) + y + floor(y/4) + floor(c/4) + 5*c
   w := w mod 7
   return weekday[w] //weekday will hold days from Saturday to Friday
End

#include<iostream>
#include<cmath>
using namespace std;

string weekday[7] = {"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};
                               
string zellersAlgorithm(int day, int month, int year) {
   int mon;
   if(month > 2)
      mon = month;    //for march to december month code is same as month
   else {
      mon = (12+month);    //for Jan and Feb, month code will be 13 and 14
      year--; //decrease year for month Jan and Feb
   }
         
   int y = year % 100;    //last two digit
   int c = year / 100;    //first two digit
   int w = (day + floor((13*(mon+1))/5) + y + floor(y/4) + floor(c/4) + (5*c));
   w = w % 7;
   return weekday[w];
}

int main() {
   int day, month, year;
   cout << "Enter Day: "; cin >>day;
   cout << "Enter Month: "; cin >>month;
   cout << "Enter Year: "; cin >>year;
   cout << "It was: " <<zellersAlgorithm(day, month, year);
}

出力

Enter Day: 04
Enter Month: 01
Enter Year: 1997
It was: Saturday

  1. Cグラフィックを使用したフラッドフィルアルゴリズム

    コンセプト 特定の長方形に関して、私たちのタスクは、フラッドフィルアルゴリズムを適用してこの長方形を塗りつぶすことです。 入力 rectangle(left = 50, top = 50, right= 100, bottom = 100) floodFill( a = 55, b = 55, NewColor = 12, OldColor = 0) 出力 メソッド //(a、b)の前の色OldColorと(a、b)の周囲のすべてのピクセルを新しい色 NewColorとfloodFill(a、b、NewColor、OldColor)に置き換える再帰関数 aまたはbが画面

  2. Pythonでプリムのアルゴリズムを使用してMSTを見つけるプログラム

    グラフが与えられ、そのグラフから「最小スパニングツリー」(MST)を見つけるように求められたとします。グラフのMSTは、すべての頂点が存在して接続され、サブセットにサイクルが存在しない加重グラフのサブセットです。 MSTの合計エッジ重みがグラフから可能な限り最小であるため、MSTは最小と呼ばれます。したがって、ここではプリムのMSTアルゴリズムを使用して、特定のグラフからMSTの合計エッジウェイトを見つけます。 したがって、入力が次のような場合 、頂点の数(n)は4で、開始頂点(s)=3の場合、出力は14になります。 このグラフのMSTは次のようになります- このMSTの合