Напишите программу на C ++,которая:
Считывает с клавиатуры год, месяц, день рождения.
Отображает соответствующее сообщение на экране в зависимости от того, какой день недели был днем рождения:
Пример:
17.03.2000 была пятница
11.09.2000 был четверг
C/C++
Помогите написать программу на С++
#include <iostream>
#include <string>
#include <array>
using namespace std;
class Date {
public:
Date(int day, int month, int year)
: day_(day), month_(month), year_(year)
, number_week_day(NumDate()) {}
string GetDate() const {
return to_string(day_) + "." + to_string(month_) + "." + to_string(year_);
}
string GetDayName() const {
return week_days_[number_week_day];
}
private:
const int day_, month_, year_;
const array<string, 7> week_days_ = {
"sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"
};
const int number_week_day = 0;
int NumDate() const {
int a = (14 - month_) / 12;
int y = year_ - a;
int m = month_ + 12 * a - 2;
return (7000 + (day_ + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) % 7;
}
};
int main() {
int day, month, year;
cin >> day >> month >> year;
Date date(day, month, year);
cout << date.GetDate() << ", " << date.GetDayName();
}
#include <string>
#include <array>
using namespace std;
class Date {
public:
Date(int day, int month, int year)
: day_(day), month_(month), year_(year)
, number_week_day(NumDate()) {}
string GetDate() const {
return to_string(day_) + "." + to_string(month_) + "." + to_string(year_);
}
string GetDayName() const {
return week_days_[number_week_day];
}
private:
const int day_, month_, year_;
const array<string, 7> week_days_ = {
"sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"
};
const int number_week_day = 0;
int NumDate() const {
int a = (14 - month_) / 12;
int y = year_ - a;
int m = month_ + 12 * a - 2;
return (7000 + (day_ + y + y / 4 - y / 100 + y / 400 + (31 * m) / 12)) % 7;
}
};
int main() {
int day, month, year;
cin >> day >> month >> year;
Date date(day, month, year);
cout << date.GetDate() << ", " << date.GetDayName();
}
11.09.2000 был понедельник
https://calendum.ru/2000
#include <iostream>
#include <string>
using namespace std;
class Birthday {
public:
Birthday(int y, int m, int d) : year_(y), month_(m), day_(d) {}
string format()const {
string date = day_ < 10 ? "0" : "";
date += to_string(day_) + ".";
date += month_ < 10 ? "0" : "";
date += to_string(month_) + ".";
date += to_string(year_) + " был " + weekday();
return date;
}
private:
int year_;
int month_;
int day_;
string weekday()const {
int LeapYears = year_ / 4;
long a = (year_ - LeapYears) * 365 + LeapYears * 366;
if (month_ >= 2) a += 31;
if (month_ >= 3 && year_ / 4 == 0) a += 29;
else if (month_ >= 3) a += 28;
if (month_ >= 4) a += 31;
if (month_ >= 5) a += 30;
if (month_ >= 6) a += 31;
if (month_ >= 7) a += 30;
if (month_ >= 8) a += 31;
if (month_ >= 9) a += 31;
if (month_ >= 10) a += 30;
if (month_ >= 11) a += 31;
if (month_ == 12) a += 30;
a += day_;
int b = (a - 2) % 7;
if (month_ > 12 || day_ > 31) b = 0;
switch (b) {
case 1: return "понедельник";
case 2: return "вторник";
case 3: return "среда";
case 4: return "четверг";
case 5: return "пятница";
case 6: return "суббота";
case 7: return "воскресенье";
}
return "пьяный гинеколог";
}
};
int integer(const char* msg) {
cout << msg;
int value;
cin >> value;
return value;
}
int main() {
system("chcp 1251 > nul");
while (true) {
auto year = integer("Год: ");
auto month = integer("Месяц: ");
auto day = integer("День: ");
Birthday date(year, month, day);
cout << date.format() << '\n';
}
}
https://calendum.ru/2000
#include <iostream>
#include <string>
using namespace std;
class Birthday {
public:
Birthday(int y, int m, int d) : year_(y), month_(m), day_(d) {}
string format()const {
string date = day_ < 10 ? "0" : "";
date += to_string(day_) + ".";
date += month_ < 10 ? "0" : "";
date += to_string(month_) + ".";
date += to_string(year_) + " был " + weekday();
return date;
}
private:
int year_;
int month_;
int day_;
string weekday()const {
int LeapYears = year_ / 4;
long a = (year_ - LeapYears) * 365 + LeapYears * 366;
if (month_ >= 2) a += 31;
if (month_ >= 3 && year_ / 4 == 0) a += 29;
else if (month_ >= 3) a += 28;
if (month_ >= 4) a += 31;
if (month_ >= 5) a += 30;
if (month_ >= 6) a += 31;
if (month_ >= 7) a += 30;
if (month_ >= 8) a += 31;
if (month_ >= 9) a += 31;
if (month_ >= 10) a += 30;
if (month_ >= 11) a += 31;
if (month_ == 12) a += 30;
a += day_;
int b = (a - 2) % 7;
if (month_ > 12 || day_ > 31) b = 0;
switch (b) {
case 1: return "понедельник";
case 2: return "вторник";
case 3: return "среда";
case 4: return "четверг";
case 5: return "пятница";
case 6: return "суббота";
case 7: return "воскресенье";
}
return "пьяный гинеколог";
}
};
int integer(const char* msg) {
cout << msg;
int value;
cin >> value;
return value;
}
int main() {
system("chcp 1251 > nul");
while (true) {
auto year = integer("Год: ");
auto month = integer("Месяц: ");
auto day = integer("День: ");
Birthday date(year, month, day);
cout << date.format() << '\n';
}
}
#include "iostream"
using namespace std;
long DayNum(long y, long m, long d){
m=(m+9)%12; y-=m/10; return 365*y+y/4-y/100+y/400+(m*306+5)/10+(d-1);}
int main(){
int y,m,d; const char *day[]={"Ср","Чт","Пт","Сб","Вс","Пн","Вт"};
cout<<"Год Месяц День: "; cin>>y>>m>>d; cout<< day[DayNum(y,m,d)% 7]<< endl;}
using namespace std;
long DayNum(long y, long m, long d){
m=(m+9)%12; y-=m/10; return 365*y+y/4-y/100+y/400+(m*306+5)/10+(d-1);}
int main(){
int y,m,d; const char *day[]={"Ср","Чт","Пт","Сб","Вс","Пн","Вт"};
cout<<"Год Месяц День: "; cin>>y>>m>>d; cout<< day[DayNum(y,m,d)% 7]<< endl;}
Похожие вопросы
- Помогите написать программу на С
- Помогите написать программу на C++
- Помогите написать программу на с++
- Помогите написать программу на с++
- Помогите написать программу
- Помогите написать программу на С++
- С++. Структуры(struct). Помогите написать программу
- Помогите написать программу на С++
- Пожалуйста, помогите написать программу на С++
- Помогите написать программу на СИ