C++实现打印一年中所有的星期三
来源:互联网 发布:淘宝网商城女童鞋 编辑:程序博客网 时间:2024/06/07 01:59
直接上代码 给定初始日期 2000年1月1日 是星期六
#include <iostream>#include <map>using namespace std;//2000年的1月1日是星期六//打印给定年所有的星期三map<int, int> Construct(int year){map<int, int>m;int a[] = { 1, 3, 5, 7, 8, 10, 12 };int b[] = { 4, 6, 9, 11 };for (int i = 0; i < 7; ++i)m.insert(pair<int, int>(a[i], 31));for (int i = 0; i < 4; ++i)m.insert(pair<int, int>(b[i], 30));if (year % 4 == 0)m.insert(pair<int, int>(2, 29));elsem.insert(pair<int, int>(2, 28));return m;}//求出给定年的1月1日是星期几int CalWeekDay(int year){int weekday, DistanceDay = 0;//2000年的1月1日是星期六for (int i = 2000; i < year; ++i){if (i % 4 == 0)DistanceDay += 366;elseDistanceDay += 365;}int left = DistanceDay % 7;int temp = left + 6;if (temp <= 7)weekday = temp;elseweekday = temp - 7;return weekday;}int FirstDate(int InitWeekDay, int day){int FirstResult = 0;if (InitWeekDay > day)FirstResult = 7 - (InitWeekDay - day) + 1;else if (InitWeekDay < day)FirstResult = day - InitWeekDay + 1;elseFirstResult = 1;return FirstResult;}int main(){int year, day;while (cin >> year >> day){map<int, int>m;int FirstResult = 0;m = Construct(year);//求出给定年的1月1日是星期几int InitWeekDay = CalWeekDay(year);FirstResult = FirstDate(InitWeekDay, day);//打印出给定该年中所有的星期三cout << year << "年所有星期" << day << "的有:" << endl;for (auto p = m.begin(); p != m.end(); ++p){cout << p->first << "月";for (int i = FirstResult; i <= p->second; i = i + 7)cout << i << " ";//求出下个月第一个满足的日期是当月第几天int Dis = p->second - FirstResult;int InitDay = 0;int SumDay = Dis % 7 + day + 1;if (SumDay <= 7)InitDay = SumDay;elseInitDay = SumDay - 7;FirstResult = FirstDate(InitDay, day);cout << endl;}}return 0;}
1 0
- C++实现打印一年中所有的星期三
- Calendar的使用之查看一年中所有星期三和其他函数的使用
- Objective-C-----用NSArray显示一年中所有的月份
- 用C实现打印所有进程
- 用C实现任意一年的日历
- Linux C打印所有的环境变量
- [SQL]得到一年中所有为星期二的日期语句
- 数理逻辑,打印8个命题的所有组合(用c语言实现)
- 打印数组中所有重复的元素
- 打印字符串中所有字符的排列
- C语言实现的linux中打印程序
- 打印树中关键字k1 - k2之间(含k1,k2)的所有元素C语言
- 打印任意一年的日历
- 使用python实现打印所有100以内的所有质数
- Java中实现打印1—N个数字排列的所有情况
- C语言实现计算一年中过了多少天
- 通过标准的Runtime API(C函数)打印UIKit中UIView的所有变量、属性以及方法
- c++: 格式化打印日历一个月的所有日期
- 129. Sum Root to Leaf Numbers
- kafka 伪集群搭建及java代码实现
- Python json 反序列化自定义对象
- VS2010自带的性能分析工具分析.NET程序的性能
- UE4创建多人游戏的配置(启动网络模块)
- C++实现打印一年中所有的星期三
- JavaScript学习笔记(5)
- js中的设计模式
- Java并发基础(八)-locks包
- Visual Studio 2010 IDE 使用之美 之一
- 1089. Insert or Merge
- js跨域问题 常见的集中解决方案
- HDU 1829 A Bug's Life(并查集)
- Visual Studio 2010 实用功能总结