哪位高手能帮帮小弟我写C程序,能的进!
谁能帮帮我写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;
}
}
帮忙用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;
}
}