| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1988 人关注过本帖
标题:一个计算星期的程序
取消只看楼主 加入收藏
数字帝国
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-5-24
收藏
 问题点数:0 回复次数:0 
一个计算星期的程序
下面程序的功能:任意输入一个时间X年Y月Z日,求出它是星期几。
i:月份  j:每月天数   k:若k=0,则x为闰年    t:闰年数    d:天数差

#include "stdio.h"
#include "math.h"
struct date
{
    int year;
    int month;
    int day;
};
int mon(int i)
{
    int j;
    if(i==1||i==3||i==5||i==7||i==8||i==10)
    j=31;
    if(i==4||i==6||i==9||i==11)
    j=30;
    if(i==2)
    j=28;
    return j;
}
int daies(int x,int y,int z)
{   
    enum weekday
    {mon=6,tue=0,wed,thu,fri,sta,sun};
    enum weekday week;
    int i,j,k,t,m=0,n,d;
    k=abs(x-1980)%4;
    if(x>=1980)
    {
        t=(x-1980)/4;
        for(i=1;i<y;i++)
        {   
             int mon(i);
             if(i==2&&k==0)
             j=29;
            m=j;
            m+=m;
        }
        d=(x-1980)*365+m+(z-1)+t;
        n=d%7;    
    }
    if(x<1980)
    {
        t=(1979-x)/4;
        for(i=12;i>y;i--)
        {
            int mon(i);
            if(i==2&&k==0)
            j=29;
            m=j;
            m+=m;
        }
        if(k==0)
        d=(1979-x)*365+m+(31-z)+t;
        n=6-d%7;
    }
    week=(enum weekday)n;
    switch(week)
    {
        case mon:printf("星期一\n"); break;
        case tue:printf("星期二\n"); break;
        case wed:printf("星期三\n"); break;
        case thu:printf("星期四\n"); break;
        case fri:printf("星期五\n"); break;
        case sta:printf("星期六\n"); break;
        case sun:printf("星期天\n"); break;
    }
}
main()
{
    struct date d;
    printf("输入年份:");
    scanf("%d",&d.year);
    printf("输入月份:");
    scanf("%d",&d.month);
    printf("输入日期:");
    scanf("%d",&d.day);
    printf("输出:\n");
    printf("%d年%d月%d日\n",d.year,d.month,d.day);
    daies(d.year,d.month,d.day);
}
参照日期:1980.1.1——星期二
程序运行后,有时正常,有时错误
如,输入:2008.5.24     输出:星期六(正常)
        输入:1981.2.24     输出:星期五(正确是星期二)
请哪位高手帮我指点下
搜索更多相关主题的帖子: 程序 
2008-05-24 22:53
快速回复:一个计算星期的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038621 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved