#include<iostream>
#include<cstring>
#include"test1.h"
#include"stdio.h"
using std::cout;
using std::cin;
using std::endl;
#define TRUE 1
#define FALSE 0
#define BIGMONTHLENG 7
int bigMonth[BIGMONTHLENG] =
{
1,
3,
5,
7,
8,
10,
12
};
bool bLeapYear = FALSE;
int countDay(int month, int day);
bool findBigMonth(int month);
int main()
{
int year,month,day;
int totall = 0;
year = 0;
month = 0;
day = 0;
cout<<" please input year, month, day\n";
cin >> year;
if(year <1000 || year > 9999)
{
cout<<" year is invalid, please input again.\n";
cin >> year;
}
cin >> month;
if(month <0 || month > 12)
{
cout<<" month is invalid, please input again.\n";
cin >> month;
}
cin >> day;
if(day < 1 || day > 31)
{
cout<<" day is invalid, please input again.\n";
cin >> day;
}
if(year % 100 == 0)
{
if(year % 400 == 0)
bLeapYear = TRUE;
}
else
{
if(year % 4 == 0)
bLeapYear = TRUE;
}
totall = countDay(month, day);
using namespace std;
printf( "year: %d, month: %d, day: %d" , year , month , day);
printf("\n Left %d day int this year.\n", totall);
return 0;
}
int countDay(int month, int day)
{
int totall = 0;
if(month > 12 || month < 0 || day >31 || day < 0 || (month == 2 && day > 29))
{
cout<< "\n\n";
cout<< "parameter is error!!\n";
cout<< "\n\n";
}
int tmpMonth = month;
if(TRUE == findBigMonth(tmpMonth))
{
totall = 31 - day;
}
else
{
if(tmpMonth == 2 && bLeapYear == TRUE)
totall = 29 - day;
else if(tmpMonth == 2)
totall = 28 - day;
else
totall = 30 - day;
}
tmpMonth++;
while(tmpMonth < 13)
{
if(TRUE == findBigMonth(tmpMonth))
{
totall += 31;
}
else
{
if(tmpMonth == 2 && bLeapYear == TRUE)
totall += 29;
else if(tmpMonth == 2)
totall += 28;
else
totall += 30;
}
tmpMonth++;
}
return totall;
}
bool findBigMonth(int month)
{
bool tmp = FALSE;
for(int i = 0; i< BIGMONTHLENG; i++)
{
if(month == bigMonth[i])
{
tmp = TRUE;
break;
}
}
return tmp;
}
#include<cstring>
#include"test1.h"
#include"stdio.h"
using std::cout;
using std::cin;
using std::endl;
#define TRUE 1
#define FALSE 0
#define BIGMONTHLENG 7
int bigMonth[BIGMONTHLENG] =
{
1,
3,
5,
7,
8,
10,
12
};
bool bLeapYear = FALSE;
int countDay(int month, int day);
bool findBigMonth(int month);
int main()
{
int year,month,day;
int totall = 0;
year = 0;
month = 0;
day = 0;
cout<<" please input year, month, day\n";
cin >> year;
if(year <1000 || year > 9999)
{
cout<<" year is invalid, please input again.\n";
cin >> year;
}
cin >> month;
if(month <0 || month > 12)
{
cout<<" month is invalid, please input again.\n";
cin >> month;
}
cin >> day;
if(day < 1 || day > 31)
{
cout<<" day is invalid, please input again.\n";
cin >> day;
}
if(year % 100 == 0)
{
if(year % 400 == 0)
bLeapYear = TRUE;
}
else
{
if(year % 4 == 0)
bLeapYear = TRUE;
}
totall = countDay(month, day);
using namespace std;
printf( "year: %d, month: %d, day: %d" , year , month , day);
printf("\n Left %d day int this year.\n", totall);
return 0;
}
int countDay(int month, int day)
{
int totall = 0;
if(month > 12 || month < 0 || day >31 || day < 0 || (month == 2 && day > 29))
{
cout<< "\n\n";
cout<< "parameter is error!!\n";
cout<< "\n\n";
}
int tmpMonth = month;
if(TRUE == findBigMonth(tmpMonth))
{
totall = 31 - day;
}
else
{
if(tmpMonth == 2 && bLeapYear == TRUE)
totall = 29 - day;
else if(tmpMonth == 2)
totall = 28 - day;
else
totall = 30 - day;
}
tmpMonth++;
while(tmpMonth < 13)
{
if(TRUE == findBigMonth(tmpMonth))
{
totall += 31;
}
else
{
if(tmpMonth == 2 && bLeapYear == TRUE)
totall += 29;
else if(tmpMonth == 2)
totall += 28;
else
totall += 30;
}
tmpMonth++;
}
return totall;
}
bool findBigMonth(int month)
{
bool tmp = FALSE;
for(int i = 0; i< BIGMONTHLENG; i++)
{
if(month == bigMonth[i])
{
tmp = TRUE;
break;
}
}
return tmp;
}