设为首页 加入收藏

TOP

c语言日期转化的问题
2012-11-01 09:12:36 来源: 作者: 【 】 浏览:342
Tags:语言 日期 转化 问题
    程序要求:
   
    把某年某月某天这种日期形式转换为某年中第几天的表示形式,反之亦然。下列两个例子实现日期转换,前一个中函数day_of_year将某年某月某日转化为某年中的第几天。而第二个例子则相反。
   
    eg1:
   
    #include <stdio.h>
   
    #include <stdlib.h>
   
    static char daydtab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
   
    {0,31,29,31,30,31,30,31,31,30,31,30,31}
   
    };
   
    int main()
   
    {
   
    int year, month,day;
   
    int days;
   
    printf(“please input year:mouth:day\n”);
   
    scanf(“%d:%d:%d”,&year,&month,&day);
   
    days=day_of_year(year,month,day);
   
    printf(“%d\n”,days);
   
    return 0;
   
    }
   
    int day_of_year(int year,int month,int day)
   
    {
   
    int leap;
   
    int i;
   
    if(year%4==0 && year %100!=0 || year %400==0)
   
    leap=1;
   
    if(month<1||month>12)
   
    {
   
    printf(“your input month error”);
   
    return -1;
   
    }
   
    if(day<1 || day>daydtab[leap][month])
   
    {
   
    printf(“your input day error”);
   
    return -1;
   
    }
   
    for(i = 1; i < month; i++)
   
    day = day + daydtab[leap][i];
   
    return day;
   
    }
   
    eg2:
   
    #include <stdio.h>
   
    static char daytab[2][13]={
   
    {0,31,28,31,30,31,30,31,31,30,31,30,31},
   
    {0,31,29,31,30,31,30,31,31,30,31,30,31}
   
    };
   
    int main()
   
    {
   
    //int *day=“0”;
   
    int yearday;
   
    int year;
   
    printf(“please input year:day:\n”);
   
    scanf(“%d:%d”,&year,&yearday);
   
    month_day(year,yearday,0,0);
   
    return 0;
   
    }
   
    void month_day(int year,int yearday,int *pmonth,int *pday)
   
    {
   
    int i;
   
    int leap;
   
    leap = year%4==0 && year%100 !=0 || year%400==0;
   
    for(i=1;i<12 && yearday>daytab[leap][i];i++)
   
    yearday-=daytab[leap][i];
   
    if(i>12 && yearday>daytab[leap][12])
   
    {
   
    *pmonth=-1;
   
    *pday=-1;
   
    }
   
    else
   
    {
   
    *pmonth=i;
   
    *pday=yearday;
   
    return ;
   
    }
   
    }
   
    其中第二个例子出现段错误,求高手赐教指点。
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c11的并发编程1 下一篇c语言中的宏和全局常量

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: