C++按月计算的天日期

默认分类 | 2020-02-02 06:25:29 | 阅读 337 次 | 评论(0)

按月计算当加减的天数很大时循环量就大,如240000/31~=7742,若用年月同时计算则可减少三百多倍循环量,提高效率。

void 按月计算的天日期(int 年, int 月, int 日, int 天, char 运算符 = '-')

{//缘由https://ask.csdn.net/questions/1052316

	int 总天数 = 返回日期总天数(年, 月, 日);

	if (运算符 == '-')while (日 <= 天)if (!--月)--年, 月 = 13; else 日 += 返回月的天数(年, 月);

	//while (日 <= 天 || !月)if (!月)--年, 月 = 13; else 日 += 返回月的天数(年, --月);

	if (运算符 == '+')while ((日 += 天) > 返回月的天数(年, 月 % 12) || 月 > 12)

	if (月 > 12)++年, 月 = 1; else 日 -= 返回月的天数(年, 月++), 天 = 0;

	日 -= 天;

	cout << 年 << "年" << (月 < 10 ? "0" : "") << 月 << "月" << (日 < 10 ? "0" : "") << 日 << "日" << endl;

	总天数 -= 返回日期总天数(年, 月, 日); cout << (总天数 < 0 ? -总天数 : 总天数) << endl;

}

 

	按月计算的天日期(2020, 1, 24, 24);

	按月计算的天日期(2020, 12, 24, 24, '+');

	按月计算的天日期(2020, 2, 24, 24);

	按月计算的天日期(2020, 2, 24, 24, '+');

	按月计算的天日期(2020, 2, 24, 240000);

	按月计算的天日期(2020, 2, 24, 240000, '+');

文章评论,共0条
游客请输入验证码