牛客网 KY108 Day of Week
发布日期:2021-07-22 07:28:55 浏览次数:2 分类:技术文章

本文共 1677 字,大约阅读时间需要 5 分钟。

用当天的日子对应的星期来推断所给日子的星期

#include 
#include
#include
using namespace std;bool isLeapYear(int year) {
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) return true; else return false;}int main(){
set
bigMonth = {
1,3,5,7,8,10,12 }; string s1; int year, month, day; int year2, month2, day2; vector
yue = {
"January", "February","March", "April","May", "June", "July","August","September", "October", "November","December" }; vector
ti = { "Sunday","Monday","Tuesday","Wednesday", "Thursday", "Friday","Saturday" }; while (cin >> day >> s1 >> year) { int num = 0; int i; for (i = 0; i < yue.size(); i++) { if (s1 == yue[i]) break; } month = i + 1; bool big; year2 = 2021; month2 = 2; day2 = 7; int temp; if (year > 2021) { temp = year; year = year2; year2 = temp; temp = month; month = month2; month2 = temp; temp = day; day = day2; day2 = temp; big = true; } else { if (year == 2021 && month > month2) { temp = month; month = month2; month2 = temp; temp = day; day = day2; day2 = temp; big = true; } else if (year == 2021 && month == month2 && day > day2) { temp = day; day = day2; day2 = temp; big = true; } big = false; } while (!(year == year2 && month == month2 && day == day2)) { day++; num++; if (bigMonth.find(month) != bigMonth.end()) { if (day > 31) { month++; day = 1; } } else if (month == 2) { if (isLeapYear(year)) { if (day > 29) { month++; day = 1; } } else { if (day > 28) { month++; day = 1; } } } else { if (day > 30) { month++; day = 1; } } if (month > 12) { year++; month = 1; } } if (big) cout << ti[num % 7] << endl; else cout << ti[6 - ((num-1) % 7)] << endl; }}

转载地址:https://blog.csdn.net/m0_45689014/article/details/113747083 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:线段树学习笔记
下一篇:牛客网 KY258 日期累加 | KY250 日期类 | KY111 日期差值

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月04日 02时58分54秒