首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

哪位高手能帮帮小弟我写C程序,能的进!

2012-02-12 
谁能帮帮我写C程序,能的进!!!!!!!!!!!帮忙用C语言写个程序,关于两年的时间差,时间格式为XXXXMMDD[解决办法

谁能帮帮我写C程序,能的进!!!!!!!!!!!
帮忙用C语言写个程序,关于两年的时间差,时间格式为XXXXMMDD


[解决办法]
// 输入如: 2007 12 24(输入之间要空格)

#include<stdio.h>
#include<iostream.h>
#include<conio.h >
#include<windows.h>


int getbeforeday(int a,int b,int c)
{
int flag,sum=0;
if(a%4 == 0 && a%100 != 0 || a%400 == 0) flag=1;
else flag=0;
switch(b)
{
case 1: sum=sum+31;
case 2:
{
if(flag==1)
{
sum=sum+29;
}
else sum=sum+28;
}
case 3: sum=sum+31;
case 4: sum=sum+30;
case 5: sum=sum+31;
case 6: sum=sum+30;
case 7: sum=sum+31;
case 8: sum=sum+31;
case 9: sum=sum+30;
case 10: sum=sum+31;
case 11: sum=sum+30;
case 12:
{
sum=sum+31;
break;
}

}
sum=sum-c;


return sum;
}
int getbehindday(int a,int b,int c)
{

int flag,sum=0;
if(a%4 == 0 && a%100 != 0 || a%400 == 0) flag=1;
else flag=0;
switch(b)
{
case 12: sum=sum+31;
case 11: sum=sum+30;

case 10: sum=sum+30;
case 9: sum=sum+31;
case 8: sum=sum+31;
case 7: sum=sum+30;
case 6: sum=sum+31;
case 5: sum=sum+30;
case 4: sum=sum+31;
case 3: 
{
if(flag==1)
{
sum=sum+29;
}
else sum=sum+28;

}
case 2: sum=sum+31;


case 1:break;



}
sum=sum+c;


return sum;
}
getyearday(int a,int b)
{
 int i=b-a;
int x=0;
int y=0;
int sum=0;
if(b-a>1)
{
for(a=a+1;a<b;++a)
{
if(a%4 == 0 && a%100 != 0 || a%400 == 0) x=x+1;
else y=y+1;
}
sum=x*366+y*365;

}
else return 0;

return sum;
}


void main(int argc, char* argv[])
{
beg:
 
int y1,m1,d1;
char ch;
int y2,m2,d2;


cout<<"输入现在的日期(例如2007 8 21):"<<endl;
cin>>y1>>m1>>d1;


cout<<"输入你想计算的日期(注意:日期要大于上面的日期):"<<endl;
cin>>y2>>m2>>d2;

//--月份和年份输入的判断


if(y1>y2||m1>12||m1<1||m2>12||m2<1||d2<1||d1<1)
{
printf("日期输入有误,请重新输入!\n");
goto beg;
}


//--第一输入的day判断-----


if(y1%4 == 0 && y1%100 != 0 || y1%400 == 0)
{
if(m1==2)
{
if(d1>29)
{
printf("您第一次输入的2月份的day有误,请重新输入!\n");
goto beg;
}

}
}
else 

{
if(m1==2)
{
if(d1>28)
{
printf("您第一次输入2月份的day有误,请重新输入!\n");
goto beg;
}
goto end1;

}
}

end1:
if(m1==1||m1==3||m1==5||m1==7||m1==8||m1==10||m1==12)
{
if(d1>31)
{
printf("您第一次输的超过了31天,请重新输入!\n");
goto beg;
}

}
if(m1==4||m1==6||m1==9||m1==10)
{
if(d1>30)
{
printf("您输入的超过了30天,请重新输入!\n");
goto beg;
}
}


//--第二次输入的day判断-----



if(y2%4 == 0 && y2%100 != 0 || y2%400 == 0)
{
if(m2==2)
{
if(d2>29)
{
printf("您2月份的day有误,请重新输入!\n");
goto beg;
}
else goto end2;

}
}
else 

{
if(m2==2)
{
if(d2>28)
{
printf("您2月份的day有误,请重新输入!\n");
goto beg;
}
else goto end2;

}
}


end2:
if(m2==1||m2==3||m2==5||m2==7||m2==8||m2==10||m2==12)
{
if(d2>31)
{
printf("您第二次输的超过了31天,请重新输入!\n");
goto beg;
}

}
if(m2==4||m2==6||m2==9||m2==10)
{
if(d2>30)
{
printf("您第二次输入的超过了30天,请重新输入!\n");
goto beg;
}
}

//--------输出天数

int day1=getbeforeday(y1,m1,d1);
int day2=getbehindday(y2,m2,d2);
int day3=getyearday(y1,y2);
int sum=day1+day2+day3;

cout<<endl<<"距"<<y2<<"年"<<m2<<"月"<<d2<<"日还有"<<sum<<"天"<<endl<<endl<<endl;
cout<<"按任意键结束!"<<endl;
ch = getch();
}

热点排行