C++实现:
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int y,m,d,count=0;
while(scanf("%d/%d/%d",&y,&m,&d)!=EOF){
if((y%4==0&&y%100!=0)||y%400==0) //如果是闰年
{
if(m<=2){
count=(m-1)*31+d;
}
if(m==3){
count=29+31+d;
}
if(m==4){
count=29+31+30+d;
}
if(m==5){
count=29+31*2+30+d;
}
if(m==6){
count=29+31*2+30+31+d;
}
if(m==7){
count=29+31*2+30+31+30+d;
}
if(m==8){
count=29+31*2+30+31+30+31+d;
}
if(m==9){
count=29+31*2+30+31+30+31+31+d;
}
if(m==10){
count=29+31*2+30+31+30+31+31+30+d;
}
if(m==11){
count=29+31*2+30+31+30+31+31+30+31+d;
}
if(m==12){
count=29+31*2+30+31+30+31+31+30+31+30+d;
}
}
else{ //如果是平年
if(m<=2){
count=(m-1)*31+d;
}
if(m==3){
count=28+31+d;
}
if(m==4){
count=28+31+30+d;
}
if(m==5){
count=28+31*2+30+d;
}
if(m==6){
count=28+31*2+30+31+d;
}
if(m==7){
count=28+31*2+30+31+30+d;
}
if(m==8){
count=28+31*2+30+31+30+31+d;
}
if(m==9){
count=28+31*2+30+31+30+31+31+d;
}
if(m==10){
count=28+31*2+30+31+30+31+31+30+d;
}
if(m==11){
count=28+31*2+30+31+30+31+31+30+31+d;
}
if(m==12){
count=28+31*2+30+31+30+31+31+30+31+30+d;
}
}
cout<<count<<endl;
}
return 0;
}
//可以看出,我的这种方法虽然能够通过,但是效率太低:
//下面是别人的代码:(尊重原作者,来自http://blog.youkuaiyun.com/vinacky/article/details/8770356)
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int a,b,c,d;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)
{
d=0;
if(b<=2) //一二月份
cout<<(b-1)*31+c<<endl;
else if(b<=8) //三到八月份,记得不是七月份哦,一定要减八
{
b-=3;
if(b%2==0)
d=(b/2)*61+c;
else
d=(b/2)*61+31+c;
if(a%400==0||(a%100!=0&&a%4==0))
cout<<d+60<<endl;
else
cout<<d+59<<endl;
}
else //九到十二月份
{
b-=8;
if(b%2==0)
d=(b/2)*61+c+153;
else
d=(b/2)*61+31+c+153;
if(a%400==0||(a%100!=0&&a%4==0))
cout<<d+60<<endl;
else
cout<<d+59<<endl;
}
}
return 0;
}
//还有一种方法
#include <iostream>
#include<stdio.h>
using namespace std;
int main()
{
int a,b,c;
while(scanf("%d/%d/%d",&a,&b,&c)!=EOF)
{
int d=0;
if(((a%4==0&&a%100!=0)||a%400==0)&&b>2) d=1;
for(int i=1;i<b;i++)
{
d+=31;
switch(i)
{
case 2: d-=3;break;
case 4: d--;break;
case 6: d--;break;
case 9: d--;break;
case 11: d--;break;
}
}
cout<<d+c<<endl;
}
}
//最后附上一个C实现的:(建议把我的当做一个效率的对比)
#include<iostream>
#include<stdio.h>
int main()
{
int y,m,d,count=0;
while(scanf("%d/%d/%d",&y,&m,&d)!=EOF){
if((y%4==0&&y%100!=0)||y%400==0) //如果是闰年
{
if(m<=2){
count=(m-1)*31+d;
}
if(m==3){
count=29+31+d;
}
if(m==4){
count=29+31+30+d;
}
if(m==5){
count=29+31*2+30+d;
}
if(m==6){
count=29+31*2+30+31+d;
}
if(m==7){
count=29+31*2+30+31+30+d;
}
if(m==8){
count=29+31*2+30+31+30+31+d;
}
if(m==9){
count=29+31*2+30+31+30+31+31+d;
}
if(m==10){
count=29+31*2+30+31+30+31+31+30+d;
}
if(m==11){
count=29+31*2+30+31+30+31+31+30+31+d;
}
if(m==12){
count=29+31*2+30+31+30+31+31+30+31+30+d;
}
}
else{ //如果是平年
if(m<=2){
count=(m-1)*31+d;
}
if(m==3){
count=28+31+d;
}
if(m==4){
count=28+31+30+d;
}
if(m==5){
count=28+31*2+30+d;
}
if(m==6){
count=28+31*2+30+31+d;
}
if(m==7){
count=28+31*2+30+31+30+d;
}
if(m==8){
count=28+31*2+30+31+30+31+d;
}
if(m==9){
count=28+31*2+30+31+30+31+31+d;
}
if(m==10){
count=28+31*2+30+31+30+31+31+30+d;
}
if(m==11){
count=28+31*2+30+31+30+31+31+30+31+d;
}
if(m==12){
count=28+31*2+30+31+30+31+31+30+31+30+d;
}
}
cout<<count<<endl;
}
return 0;
}