计算公元纪年法总天数及星期几(用自己的一个思路)查询日历保存到文本文件
2015-04-01 18:44
239 查看
计算任意指定公元日期总天数及星期几,查询输出日历到记事本的追加及覆盖.
struct 阳历节日类{ int 日期; string 内容; }; int 数组折半查找法(阳历节日类 数组[], int 维度, int 值) { int 返回序号(-1), 头(0), 尾 = 维度 - 1; do { if (数组[尾].日期 == 值) { 返回序号 = 尾; break; } else if (数组[头].日期 == 值) { 返回序号 = 头; break; } } while (++头 <= --尾); return 返回序号; } int 日子[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int 月1号总天数(int 年, int 月, bool 闰) { int 计日(1), 计月 = 月 - 1; 日子[1] = (闰) ? 29 : 28;/*用自己计算方法,获得指定年和月日期的累计总天数*/ while (计月)计日 += 日子[--计月];/*1年-1后0年由月累计,大于1年的计算已过年天数+月累计,如5年计算前4年增1,之后类推,解决0不能作为被除数*/ return 计日 + ((--年) ? 365 * 年 + (年 / 4 - 年 / 100 + 年 / 400) : 0); } void 阳历节日日历(string 保存文件名, char* 时间, int 年, int 月 = 1, int 日 = 1) { 阳历节日类 阳历节日[] = { { 101, "元旦节 " }, { 214, "情人节 " }, { 308, "妇女节 " }, { 312, "植树节 " }, { 401, "愚人节 " }, { 422, "地球日 " }, { 501, "劳动节 " }, { 504, "青年节 " }, { 512, "护士节 " }, { 601, "儿童节 " }, { 608, "海洋日 " }, { 928, "孔子诞 " }, { 1001, "国庆节 " }, { 1006, "老人节 " }, { 1002, "节假日 " }, { 1003, "节假日 " }, { 1004, "节假日 " }, { 1005, "节假日 " }, { 1006, "节假日 " }, { 1007, "节假日 " } }; bool 闰 = ((!(年 % 4) && 年 % 100) || !(年 % 400)) ? true : false;/*四年一闰,百年不闰,四百年再闰。*/ int 月总天数 = 月1号总天数(年, 月, 闰), 星期1号 = 月总天数 % 7/*当前月1日是星期几*/, 当天星期 = (月总天数 + 日 - 1) % 7/*获取指定日期的总天数和星期几*/; int 填充(1), 月号(1); string 一周[7]; printf_s("今天:%d年%d月%d日 星期%d %s ", 年, 月, 日, 当天星期, (闰 && 月 == 2) ? "闰月" : ""); printf("时间:%s\n", 时间); printf_s("星期日 星期一 星期二 星期三 星期四 星期五 星期六\n"); std::ofstream 文件("浤济的专栏-贤发居士的万年历保存文件" + 保存文件名 + ".txt", ((保存文件名 != "") ? std::ios::app : std::ios::out)); 文件 << 年 << "年" << 月 << "月" << 日 << "日 当天星期:" << 当天星期 << ((闰 && 月 == 2) ? "闰月" : "") << " 时间:" << 时间 << "\n"; 文件 << "星期日 星期一 星期二 星期三 星期四 星期五 星期六\n"; do { if (填充 > 日子[月 - 1] + 星期1号 || 填充 <= 星期1号)文件 << " . "; else { if (月号 == 日)文件 << "△ " << ((月号<10) ? "0" : "") << 月号 << " "; else 文件 << " " << ((月号<10) ? "0" : "") << 月号 << " "; } (填充 > 日子[月 - 1] + 星期1号 || 填充 <= 星期1号) ? printf_s("%6s ", ".") : printf_s(月号 == 日 ? "△%4d " : "%6d ", 月号++); int 序 = 数组折半查找法(阳历节日, sizeof(阳历节日) / sizeof(阳历节日[0]), 月 * 100 + 月号 - 1); 一周[(填充 - 1) % 7] = (序 >= 0) ? 阳历节日[序].内容 : " "; if (!(填充 % 7)) { printf_s("\n"); 月总天数 = 0;/*利用之上不再用到的变量*/ while (月总天数 < 7) std::cout << 一周[月总天数++];/*另一行输出节日内容*/ printf_s("\n------------------------------------------------\n"); 文件 << "\n"; 月总天数 = 0; while (月总天数 < 7) 文件 << 一周[月总天数++];/*另一行输出节日内容*/ 文件 << "\n------------------------------------------------\n"; } } while (++填充 <= 42); std::cout << std::endl; } CTime time(CTime::GetCurrentTime()); SYSTEMTIME timeDest; time.GetAsSystemTime(timeDest);/*获取系统日期*/ int 年 = timeDest.wYear, 月 = timeDest.wMonth, 日 = timeDest.wDay; char 时间[128]; _strtime_s(时间, 128); 阳历节日日历("", 时间, 年, 月, 日); string 保存文件名(""); int 输入年月日[4]; printf_s("输入保存文件名,该文件将保存在执行文件的当前目录中的txt文件。\n"); std::cin >> 保存文件名; printf_s("输入起始年、月和结束年、月,以空格隔开\n"); scanf_s("%d %d %d %d", &输入年月日[0], &输入年月日[1], &输入年月日[2], &输入年月日[3]); do { 阳历节日日历(保存文件名, 时间, 输入年月日[0], 输入年月日[1], 日); if (++输入年月日[1]>12){ ++输入年月日[0]; 输入年月日[1] = 1; } if (输入年月日[0] == 输入年月日[2] && 输入年月日[1] > 输入年月日[3])break; } while (输入年月日[0] <= 输入年月日[2]);之下是运行结果保存在文本文件中查询从2014年1月至2016年12月的日历输出内容:
2014年1月2日 当天星期:4 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . 01 △ 02 03 04 元旦节 ------------------------------------------------ 05 06 07 08 09 10 11 ------------------------------------------------ 12 13 14 15 16 17 18 ------------------------------------------------ 19 20 21 22 23 24 25 ------------------------------------------------ 26 27 28 29 30 31 . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2014年2月2日 当天星期:0 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . . 01 ------------------------------------------------ △ 02 03 04 05 06 07 08 ------------------------------------------------ 09 10 11 12 13 14 15 情人节 ------------------------------------------------ 16 17 18 19 20 21 22 ------------------------------------------------ 23 24 25 26 27 28 . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2014年3月2日 当天星期:0 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . . 01 ------------------------------------------------ △ 02 03 04 05 06 07 08 妇女节 ------------------------------------------------ 09 10 11 12 13 14 15 植树节 ------------------------------------------------ 16 17 18 19 20 21 22 ------------------------------------------------ 23 24 25 26 27 28 29 ------------------------------------------------ 30 31 . . . . . ------------------------------------------------ 2014年4月2日 当天星期:3 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . 01 △ 02 03 04 05 愚人节 ------------------------------------------------ 06 07 08 09 10 11 12 ------------------------------------------------ 13 14 15 16 17 18 19 ------------------------------------------------ 20 21 22 23 24 25 26 地球日 ------------------------------------------------ 27 28 29 30 . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2014年5月2日 当天星期:5 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . 01 △ 02 03 劳动节 ------------------------------------------------ 04 05 06 07 08 09 10 青年节 ------------------------------------------------ 11 12 13 14 15 16 17 护士节 ------------------------------------------------ 18 19 20 21 22 23 24 ------------------------------------------------ 25 26 27 28 29 30 31 ------------------------------------------------ . . . . . . . ------------------------------------------------ 2014年6月2日 当天星期:1 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 01 △ 02 03 04 05 06 07 儿童节 ------------------------------------------------ 08 09 10 11 12 13 14 海洋日 ------------------------------------------------ 15 16 17 18 19 20 21 ------------------------------------------------ 22 23 24 25 26 27 28 ------------------------------------------------ 29 30 . . . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2014年7月2日 当天星期:3 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . 01 △ 02 03 04 05 ------------------------------------------------ 06 07 08 09 10 11 12 ------------------------------------------------ 13 14 15 16 17 18 19 ------------------------------------------------ 20 21 22 23 24 25 26 ------------------------------------------------ 27 28 29 30 31 . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2014年8月2日 当天星期:6 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . 01 △ 02 ------------------------------------------------ 03 04 05 06 07 08 09 ------------------------------------------------ 10 11 12 13 14 15 16 ------------------------------------------------ 17 18 19 20 21 22 23 ------------------------------------------------ 24 25 26 27 28 29 30 ------------------------------------------------ 31 . . . . . . ------------------------------------------------ 2014年9月2日 当天星期:2 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . 01 △ 02 03 04 05 06 ------------------------------------------------ 07 08 09 10 11 12 13 ------------------------------------------------ 14 15 16 17 18 19 20 ------------------------------------------------ 21 22 23 24 25 26 27 ------------------------------------------------ 28 29 30 . . . . 孔子诞 ------------------------------------------------ . . . . . . . ------------------------------------------------ 2014年10月2日 当天星期:4 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . 01 △ 02 03 04 国庆节 节假日 节假日 节假日 ------------------------------------------------ 05 06 07 08 09 10 11 节假日 节假日 节假日 ------------------------------------------------ 12 13 14 15 16 17 18 ------------------------------------------------ 19 20 21 22 23 24 25 ------------------------------------------------ 26 27 28 29 30 31 . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2014年11月2日 当天星期:0 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . . 01 ------------------------------------------------ △ 02 03 04 05 06 07 08 ------------------------------------------------ 09 10 11 12 13 14 15 ------------------------------------------------ 16 17 18 19 20 21 22 ------------------------------------------------ 23 24 25 26 27 28 29 ------------------------------------------------ 30 . . . . . . ------------------------------------------------ 2014年12月2日 当天星期:2 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . 01 △ 02 03 04 05 06 ------------------------------------------------ 07 08 09 10 11 12 13 ------------------------------------------------ 14 15 16 17 18 19 20 ------------------------------------------------ 21 22 23 24 25 26 27 ------------------------------------------------ 28 29 30 31 . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年1月2日 当天星期:5 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . 01 △ 02 03 元旦节 ------------------------------------------------ 04 05 06 07 08 09 10 ------------------------------------------------ 11 12 13 14 15 16 17 ------------------------------------------------ 18 19 20 21 22 23 24 ------------------------------------------------ 25 26 27 28 29 30 31 ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年2月2日 当天星期:1 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 01 △ 02 03 04 05 06 07 ------------------------------------------------ 08 09 10 11 12 13 14 情人节 ------------------------------------------------ 15 16 17 18 19 20 21 ------------------------------------------------ 22 23 24 25 26 27 28 ------------------------------------------------ . . . . . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年3月2日 当天星期:1 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 01 △ 02 03 04 05 06 07 ------------------------------------------------ 08 09 10 11 12 13 14 妇女节 植树节 ------------------------------------------------ 15 16 17 18 19 20 21 ------------------------------------------------ 22 23 24 25 26 27 28 ------------------------------------------------ 29 30 31 . . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年4月2日 当天星期:4 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . 01 △ 02 03 04 愚人节 ------------------------------------------------ 05 06 07 08 09 10 11 ------------------------------------------------ 12 13 14 15 16 17 18 ------------------------------------------------ 19 20 21 22 23 24 25 地球日 ------------------------------------------------ 26 27 28 29 30 . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年5月2日 当天星期:6 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . 01 △ 02 劳动节 ------------------------------------------------ 03 04 05 06 07 08 09 青年节 ------------------------------------------------ 10 11 12 13 14 15 16 护士节 ------------------------------------------------ 17 18 19 20 21 22 23 ------------------------------------------------ 24 25 26 27 28 29 30 ------------------------------------------------ 31 . . . . . . ------------------------------------------------ 2015年6月2日 当天星期:2 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . 01 △ 02 03 04 05 06 儿童节 ------------------------------------------------ 07 08 09 10 11 12 13 海洋日 ------------------------------------------------ 14 15 16 17 18 19 20 ------------------------------------------------ 21 22 23 24 25 26 27 ------------------------------------------------ 28 29 30 . . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年7月2日 当天星期:4 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . 01 △ 02 03 04 ------------------------------------------------ 05 06 07 08 09 10 11 ------------------------------------------------ 12 13 14 15 16 17 18 ------------------------------------------------ 19 20 21 22 23 24 25 ------------------------------------------------ 26 27 28 29 30 31 . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年8月2日 当天星期:0 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . . 01 ------------------------------------------------ △ 02 03 04 05 06 07 08 ------------------------------------------------ 09 10 11 12 13 14 15 ------------------------------------------------ 16 17 18 19 20 21 22 ------------------------------------------------ 23 24 25 26 27 28 29 ------------------------------------------------ 30 31 . . . . . ------------------------------------------------ 2015年9月2日 当天星期:3 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . 01 △ 02 03 04 05 ------------------------------------------------ 06 07 08 09 10 11 12 ------------------------------------------------ 13 14 15 16 17 18 19 ------------------------------------------------ 20 21 22 23 24 25 26 ------------------------------------------------ 27 28 29 30 . . . 孔子诞 ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年10月2日 当天星期:5 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . 01 △ 02 03 国庆节 节假日 节假日 ------------------------------------------------ 04 05 06 07 08 09 10 节假日 节假日 节假日 节假日 ------------------------------------------------ 11 12 13 14 15 16 17 ------------------------------------------------ 18 19 20 21 22 23 24 ------------------------------------------------ 25 26 27 28 29 30 31 ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年11月2日 当天星期:1 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 01 △ 02 03 04 05 06 07 ------------------------------------------------ 08 09 10 11 12 13 14 ------------------------------------------------ 15 16 17 18 19 20 21 ------------------------------------------------ 22 23 24 25 26 27 28 ------------------------------------------------ 29 30 . . . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2015年12月2日 当天星期:3 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . 01 △ 02 03 04 05 ------------------------------------------------ 06 07 08 09 10 11 12 ------------------------------------------------ 13 14 15 16 17 18 19 ------------------------------------------------ 20 21 22 23 24 25 26 ------------------------------------------------ 27 28 29 30 31 . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年1月2日 当天星期:6 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . 01 △ 02 元旦节 ------------------------------------------------ 03 04 05 06 07 08 09 ------------------------------------------------ 10 11 12 13 14 15 16 ------------------------------------------------ 17 18 19 20 21 22 23 ------------------------------------------------ 24 25 26 27 28 29 30 ------------------------------------------------ 31 . . . . . . ------------------------------------------------ 2016年2月2日 当天星期:2闰月 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . 01 △ 02 03 04 05 06 ------------------------------------------------ 07 08 09 10 11 12 13 ------------------------------------------------ 14 15 16 17 18 19 20 情人节 ------------------------------------------------ 21 22 23 24 25 26 27 ------------------------------------------------ 28 29 . . . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年3月2日 当天星期:3 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . 01 △ 02 03 04 05 ------------------------------------------------ 06 07 08 09 10 11 12 妇女节 植树节 ------------------------------------------------ 13 14 15 16 17 18 19 ------------------------------------------------ 20 21 22 23 24 25 26 ------------------------------------------------ 27 28 29 30 31 . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年4月2日 当天星期:6 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . 01 △ 02 愚人节 ------------------------------------------------ 03 04 05 06 07 08 09 ------------------------------------------------ 10 11 12 13 14 15 16 ------------------------------------------------ 17 18 19 20 21 22 23 地球日 ------------------------------------------------ 24 25 26 27 28 29 30 ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年5月2日 当天星期:1 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 01 △ 02 03 04 05 06 07 劳动节 青年节 ------------------------------------------------ 08 09 10 11 12 13 14 护士节 ------------------------------------------------ 15 16 17 18 19 20 21 ------------------------------------------------ 22 23 24 25 26 27 28 ------------------------------------------------ 29 30 31 . . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年6月2日 当天星期:4 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . 01 △ 02 03 04 儿童节 ------------------------------------------------ 05 06 07 08 09 10 11 海洋日 ------------------------------------------------ 12 13 14 15 16 17 18 ------------------------------------------------ 19 20 21 22 23 24 25 ------------------------------------------------ 26 27 28 29 30 . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年7月2日 当天星期:6 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . 01 △ 02 ------------------------------------------------ 03 04 05 06 07 08 09 ------------------------------------------------ 10 11 12 13 14 15 16 ------------------------------------------------ 17 18 19 20 21 22 23 ------------------------------------------------ 24 25 26 27 28 29 30 ------------------------------------------------ 31 . . . . . . ------------------------------------------------ 2016年8月2日 当天星期:2 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . 01 △ 02 03 04 05 06 ------------------------------------------------ 07 08 09 10 11 12 13 ------------------------------------------------ 14 15 16 17 18 19 20 ------------------------------------------------ 21 22 23 24 25 26 27 ------------------------------------------------ 28 29 30 31 . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年9月2日 当天星期:5 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . 01 △ 02 03 ------------------------------------------------ 04 05 06 07 08 09 10 ------------------------------------------------ 11 12 13 14 15 16 17 ------------------------------------------------ 18 19 20 21 22 23 24 ------------------------------------------------ 25 26 27 28 29 30 . 孔子诞 ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年10月2日 当天星期:0 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . . . 01 国庆节 ------------------------------------------------ △ 02 03 04 05 06 07 08 节假日 节假日 节假日 节假日 节假日 节假日 ------------------------------------------------ 09 10 11 12 13 14 15 ------------------------------------------------ 16 17 18 19 20 21 22 ------------------------------------------------ 23 24 25 26 27 28 29 ------------------------------------------------ 30 31 . . . . . ------------------------------------------------ 2016年11月2日 当天星期:3 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . 01 △ 02 03 04 05 ------------------------------------------------ 06 07 08 09 10 11 12 ------------------------------------------------ 13 14 15 16 17 18 19 ------------------------------------------------ 20 21 22 23 24 25 26 ------------------------------------------------ 27 28 29 30 . . . ------------------------------------------------ . . . . . . . ------------------------------------------------ 2016年12月2日 当天星期:5 时间:20:12:07 星期日 星期一 星期二 星期三 星期四 星期五 星期六 . . . . 01 △ 02 03 ------------------------------------------------ 04 05 06 07 08 09 10 ------------------------------------------------ 11 12 13 14 15 16 17 ------------------------------------------------ 18 19 20 21 22 23 24 ------------------------------------------------ 25 26 27 28 29 30 31 ------------------------------------------------ . . . . . . . ------------------------------------------------
相关文章推荐
- 用JavaScript写出 , 用户输入一个天数,计算这个天数后是星期几。
- 输入一个日期,判断这个日期在一年中是哪一天,是星期几,计算两个日期间的天数,使用字符串输出日期
- 输入一个日期,计算与所设定日期之间的天数,输出这个日期是星期几
- 日历查询的算法 如何计算某一天是星期几
- 自己写的一个用函数实现的日历
- 如何自己写一个日历
- 生成XML格式的查询结果,保存到一个XML文本中
- C# 一个简单分词程序的思路和代码(四) 键树 查询记录
- 计算一个文本文件的行数
- 最近编写一个日历控件,对包含有日期及时间记录的数据查询很方便
- 自己写的一个日历年月日的js类
- 用 js 写了一个批量保存文本文件入数据库的脚本
- 自己写的一个日历表
- 无奈自己写了一个简单的JDBC查询缓存,分享一下
- 分享一个自己写的谷歌日历客户端(Google Calendar)
- 收藏一个查询每月所有天数的SQL
- 忙了一周,终于搭建了按自己思路设计的一个架构!
- 自己写的一个表达式计算类
- 转载:读取一个文本文件并把文件中的文本保存在一个CString对象中,如何能做到
- 给一个DataTable 添加一列,来保存计算出来的结果。。