PTA ——火星日历

PTA ——火星日历人类将要移民火星了 不过在移民前 需要了解火星的日历 火星也是有闰年和闰月的 火星历中的月份设计与置闰规则是这样的 一个火星年分为 24 个月 每 6 个月的最初 5 个月的长度为 28 火星日 其余为 27 火星日 也就是 6 月 12 月 18 月为 27 天 而最后一个月 24 月

大家好,我是讯享网,很高兴认识大家。

人类将要移民火星了,不过在移民前,需要了解火星的日历,火星也是有闰年和闰月的,火星历中的月份设计与置闰规则是这样的:
一个火星年分为24个月,每6个月的最初5个月的长度为28火星日,其余为27火星日(也就是6月、12月、18月为27天)。而最后一个月(24月),如果是闰年就是28个火星日,平年则为27个火星日。这样一来,平年长度为:2028+274=668火星日,而闰年的长度为:21* 28+27*3=669火星日。
置闰规则
每十个火星年均由6个闰年及4个平年所组成,还遵循以下原则:
1.能被1000整除的年份是闰年,669天。如星元1000,2000年。
⒉.所有为奇数年份是闰年,669天。如星元1,3,5,7,33,123年。
3.能被10整除的年份但不能被100整除的年份是闰年,669天。如星元10,20,90,110,1230年。
4.只能被100整除的年份,以及其他偶数年份均为平年,668天。如星元2,4,6,8,12,98,100,102,198,200年。
输入火星的日期,比如:星元2021年10月27日,计算该日期是当年的距1月1日后第几天,以及距星元1年1月1日多天(注:不算起点这天,也就是星元1年1月2日距星元1年1月1日为1天)。
输入格式:
在一行中输入火星日期,为三个整数,分别是:年、月、日
输出格式:
在第一行输出该日期是当年火星年的距1月1日后第几天;在第二行输出距星元1年1月1日多少天。
输入样例:
在这里给出一组输入。例如:
2021 10 27


讯享网

#include<iostream> using namespace std; int main() { 
    int run_year = 0, ping_year = 0; int year, month, day; int put_out_1, put_out_2; cin >> year >> month >> day; for (int i = 1; i < year; i++) { 
    if (i % 1000 == 0) { 
    run_year++; } else if (i % 2 == 1) { 
    run_year++; } else if (i % 10 == 0 && i % 100 != 0) { 
    run_year++; } else { 
    ping_year++; } } int temp = month % 6; int temp2 = month / 6; month = month - 6 * temp2; put_out_1= temp2 * 167 + 28 * (month - 1) + day-1; put_out_2 = run_year * 669 + ping_year * 668 + temp2 * 167 + 28 * (month - 1) + day-1; cout <<put_out_1<<endl<< put_out_2; } 

讯享网
小讯
上一篇 2025-02-18 16:23
下一篇 2025-02-18 16:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/27307.html