一个很简单的根据输入年月日计算当前日期是这一年的第几天问题。
c++中的cin根据格式输入比较麻烦,学习其中的输入方法。
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<iomanip>
#include<string>
using namespace std;
bool isLeapYear(int year){
return (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0);
}
int main(){
int date[2][12] = {
{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 },
{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
};
char a, b;
int year, month,day;
while (cin >> year&&cin.get(a) && cin >> month&&cin.get(b) && cin >> day){
int sum = 0;
if (year >= 0 && year <= 9999 && a == '/'&&b == '/'){
int row = isLeapYear(year);
for (int i = 0; i <= month-2; i++){
sum += date[row][i];
}
sum += day;
cout << sum << endl;
}
}
return 0;
}