struct Date
{
int year;
int month;
int day;
};
struct imformation
{
char name[50];
int tel[20];
Date time;
}person1;
void main()
{
printf("请输入1个人的姓名、手机号码、认识日期(年 月 日):\n");
scanf("%s\t%d\t%d %d %d",&person1name,&person1tel,&person1Dateyear,&person1Datemonth,&person1Dateday); //你把你所有的Date都改成time, 用的时候应该用的是变量名字,而不是结构体的名字。
printf("姓名\t手机号码\t认识日期(年 月 日)\n");
printf("%s\t%d\t%d %d %d",person1name,person1tel,person1Dateyear,person1Datemonth,person1Dateday);//还有这里也改一下。
}#include<stdioh>
int main()
{
int year,month,day;
int birthY,birthM,birthD;
int N;
printf("请输入生日");
scanf("%d%d%d",&birthY,&birthM,&birthD);
printf("请输入当前日期");
scanf("%d%d%d",&year,&month,&day);
N=year-birthY;
if(month<birthM)
N--;
else
if(month==birthM)
if(day<birthD)
N--;
printf("年龄为%d\n",N);
return 0;
}
没调试。dd/mm/yyyy、mm/dd/yyyy
会导致歧意
mm,dd,yyyy、dd,mm,yyyy
同样会导致歧意
以下程序是按yyyy/mm/dd,mm/dd/yyyy和yyyy,mm,dd、mm,dd,yyyy格式输入:
//---------------------------------------------------------------------------
#include
#include
int
main(void)
{
int
y,m,d;
char
a[5],b[5],c[5];
scanf("%4[0-9]%c%4[0-9]%c%4[0-9]",a,b,c);
if
(strlen(a)==4)
{
sscanf(a,"%d",&y);
sscanf(b,"%d",&m);
sscanf(c,"%d",&d);
}
else
if
(strlen(c)==4)
{
sscanf(a,"%d",&m);
sscanf(b,"%d",&d);
sscanf(c,"%d",&y);
}
else
y=m=d=0;
printf("%4d/%02d/%02d\n",y,m,d);
return
0;
}
//---------------------------------------------------------------------------我写好了,而且用VC平台给你测试了,绝对能用,如果不行,随你骂
里面
闰月
的情况都考虑了,程序有点复杂,是被我写复杂了的,毕竟是不是高手
#include<stdioh>
void
main()
{
int
a,b,c;
printf("请输入今天的日期(例如2008-03-27):");
scanf("%d-%d-%d",&a,&b,&c);
if(b==02
&&
c==28
&&
a%4==0)
{a=a;
b=03;
c=01;}
else
if(a%4!=0
&&
b==02
&&
c==27)
{a=a;
b=03;
c=01;}
else
if(b==12
&&
c==31)
{a=a+1;
b=01;
c=01;}
else
if((b==1
||b==3
||b==5
||b==7||b==8||b==10)&&c==31)
{a=a;
b=b+1;
c=01;}
else
if((b==4||
b==6||b==9||b==11)&&c==30)
{a=a;
b=b+1;
c=01;}
else
{a=a;
b=b;
c=c+1;}
printf("明天日期为:%d-%d-%d\n",a,b,c);
}
如果还有
什么疑问,就加我249524324
如果测试
可以的话
,就请给我个奖,毕竟我为了写这个程序花了30分钟,调试了好多次
所以希望你能珍惜我的劳动成果c使用ctime,具体使用方法搜一下
函数 sturct tm localtime(const time_t time)来获得本地时间,使用该函数时,需要加头文件<timeh> ;
几个常用的时间函数
time()//取得系统时间
gmtime()//转换成国标标准之间
localtime()//转换成本地时间
asctime()//转换成字符形式
ctime()//转换成字符形式
strftime()//类似于printf()
要输入一个日期,可以定义一个结构函数,如:
struct time
{
int year;
int month;
int day;
}time;#include
void
main(){
int
startyear,endyear,startmonth,endmonth,startday,endday,i,p=0,r=0;
printf("请输入出生日期:");
scanf("%d,%d,%d",&startyear,&startmonth,&startday);
printf("请输入现在日期:");
scanf("%d,%d,%d",&endyear,&endmonth,&endday);
while(startyear>endyear||startmonth<0||startmonth>12||endmonth<0||endmonth>12){
printf("输入非法!\n");
printf("请输入出生日期:");
scanf("%d,%d,%d",&startyear,&startmonth,&startday);
printf("请输入现在日期:");
scanf("%d,%d,%d",&endyear,&endmonth,&endday);
}
if(startmonth>endmonth||startday>endday){
endyear-=1;
}
for(i=startyear;i
评论
0
0
加载更多我大概给个思路,代码是现写的 没调试
先定义每个月的天数,2月按28天算
输入年月日后,根据年判断是否闰年(闰年加1天),再从1月加到当月的前一月,再加上日期就可以了
#include <stdioh>
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
main()
{
int yy,mm,dd, days;
int i;
printf("input year:"); scanf("%d", &yy);
printf("input month:"); scanf("%d", &mm);
printf("input day:"); scanf("%d", &dd);
/ 如果大于2月,要做闰年的判断,忘了,不一定准 /
if( mm > 2 && ((year%4==0 && year%100!=0) || year%400==0) ) days = 1;
else days = 0;
/ 加上前面各整月的天数 /
for(i = 0; i < mm-1; i++) days += month[i];
/ 加上日数 /
days += dd;
printf("This is the %d day of year %d!!\n", days, yy);
}
比如输入 1999 2 1
应该输出:This is the 32 day of year 1999!!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)