题解 | #计算日期到天数转换# C++两种解题思路(常规+时间方法)
计算日期到天数转换
http://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded
//用常规方法解题 int main() { int year,mon,day; vector<int> v{31,28,31,30,31,30,31,31,30,31,30,31}; while(cin>>year>>mon>>day) { int sum=0; if(cin.get()=='\n') { for(int i=0;i<mon-1;i++) { sum+=v[i]; } sum+=day; if(year%400==0||(year%4==0&&year%100!=0))//判断闰年,闰年特殊情况可能+1 { if(mon>2) { sum+=1; } } cout<<sum<<endl; } } } //用时间方法 #include<bits/stdc++.h> using namespace std; int main() { int year, mon, day; while (cin>>year>>mon>>day) { tm t{0}; t.tm_year = year - 1900;//将年月日幅值到tm结构中 t.tm_mon = mon - 1; t.tm_mday = day; time_t time = mktime(&t); tm * tm = localtime(&time); cout << tm->tm_yday+1 << endl; getchar(); } }