方法一:
#include <iostream> /*cout*/
#include<string>
#include <ctime>
int getDayByYear(int y, int m,int day) {
time_t rawtime;
time(&rawtime);
struct tm* timeinfo;
timeinfo = localtime(&rawtime);
timeinfo->tm_year = y - 1900;
timeinfo->tm_mon = m - 1;
timeinfo->tm_mday = day;
mktime(timeinfo);
int numByYear = timeinfo->tm_yday +1;
cout << numByYear << endl;
return numByYear;
}
int main()
{
getDayByYear(2014, 2,1);
return 0;
}
方法二:
#include <iostream>
int getDayByYear(int y, int m,int day) {
int sum = 0;
int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (y % 4 == 0) {
if (y % 100 == 0) {
if (y % 400 == 0) {
days[1] = 29;
}
}
else {
days[1] = 29;
}
}
if (m > 12 || day > days[m - 1]) {
cout << "日期错误!" << endl;
return 0;
}
for (int i = 0; i < m - 1; i++) {
sum += days[i];
}
sum += day;
printf("%d 年 %d 月 %d 日 是 %d 年中的第 %d 天\n", y, m, day, y, sum);
return sum;
}
int main()
{
getDayByYear(2014, 2,1);
return 0;
}