Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

วันในสัปดาห์ในภาษา C++


สมมุติว่าเรามีวันที่ (วัน เดือน ปี) จากวันที่นี้ เราต้องหาวันในสัปดาห์ของวันที่นั้น เพื่อแก้ปัญหานี้ เราจะใช้อัลกอริธึมของเซลเลอร์ สูตรหาวันธรรมดาโดยใช้อัลกอริธึมของ Zeller อยู่ที่นี่แล้ว

𝑤=$$\lgroup d+\lfloor \frac{13(m+1)}{5} \rfloor+y+\lfloor\frac{y}{4} \rfloor+\lfloor\frac{c}{4} \rfloor +5c \rกลุ่ม mod 7$$

สูตรประกอบด้วยตัวแปรบางตัว พวกมันคือ −

− วันของวันที่

- เป็นรหัสเดือน สำหรับเดือนมีนาคมถึงธันวาคมคือ 3 ถึง 12 สำหรับเดือนมกราคมคือ 13 และสำหรับเดือนกุมภาพันธ์คือ 14 เมื่อเราพิจารณามกราคมหรือกุมภาพันธ์ ปีที่กำหนดจะลดลง 1

- เลขสองหลักสุดท้ายของปี

- เลขสองหลักแรกของปี

- วันธรรมดา เมื่อเป็น 0 คือวันเสาร์ เมื่อเป็น 6 หมายถึงวันศุกร์

ตัวอย่างเช่น หากเราต้องการได้วันทำงานของวันที่ 4 มกราคม 1997 ผลลัพธ์จะเป็น "วันเสาร์"

อัลกอริทึมมีดังนี้ −

อัลกอริทึม

zellersAlgorithm(วัน เดือน ปี)

ป้อนข้อมูล − วันที่ของวัน

ผลผลิต − วันไหน (วันอาทิตย์ถึงวันเสาร์)

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

ตัวอย่าง (C++)

#include
#include
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);
}

อินพุต

(4, 1, 1997)

ผลลัพธ์

Enter Day: 4
Enter Month: 1
Enter Year: 1997
It was: Saturday