输入一个日期的年,月,日,计算并输出这天是该年的第几天,例如,2011年1月31日是该年的第31天。
#include <iostream>
using namespace std;
int main() {
int year, month, day, days = 0;
int daysOfMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
cout << "请输入年份:";
cin >> year;
cout << "请输入月份:";
cin >> month;
cout << "请输入日期:";
cin >> day;
// 计算该年是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
daysOfMonth[1] = 29;
}
// 计算该天是该年的第几天
for (int i = 0; i < month - 1; i++) {
days += daysOfMonth[i];
}
days += day;
cout << year << "年" << month << "月" << day << "日是该年的第" << days << "天。" << endl;
return 0;
}
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
//判断是否是闰年
int IsLeapYear(int y)
{
if ((y % 400 == 0) || ((y % 4 == 0) && (y % 100 != 0)))
return 1;
else return 0;
}
int CaculateWeekDay(int yy, int mm, int d)
{
if (mm == 1 || mm == 2) {
mm += 12;
yy--;
}
int iWeek = (d + 2 * mm + 3 * (mm + 1) / 5 + yy + yy / 4 - yy / 100 + yy / 400) % 7;
return iWeek + 1;
}
note:CaculateWeekDay函数返回值即星期几(返回7,星期日;返回2,星期二)
此计算公式可以输入任意日期,求得这个一天的星期
判断是否闰年,以及每个月的天数
#include <iostream>
using namespace std;
int main()
{
int md[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
int year,month,day,days=0;
cin>>year>>month>>day;
for(int i=1;i<month;i++)
days += md[i-1];
if(month > 2)
{
if((year%400==0) || ((year%4==0) && (year%100 !=0)))
days++;
}
days += day;
cout<<days;
}