| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 801 人关注过本帖
标题:谁能帮我修改一下这个万年历
只看楼主 加入收藏
wbajieng
Rank: 1
等 级:新手上路
帖 子:20
专家分:1
注 册:2010-3-28
结帖率:71.43%
收藏
已结贴  问题点数:20 回复次数:6 
谁能帮我修改一下这个万年历
#include<stdio.h>
void main()
{
    int year,days=0,sum,i,day=0,j;
    printf("输入年份:");
    scanf("%d",&year);
    if(year>=2000){
        for(i=2000;i<year;i++){
            if(i%4==0&&i%100!=0||i%400==0)
                days+=366;
            else days+=365;
        }
        sum=(days%7+6)%7;
    }
    else if(year<2000){
        for(i=1999;i>=year;i--){
            if(i%4==0&&i%100!=0||i%400==0)
                days+=366;
            else days+=365;
        }
        sum=(6-days%7)%7;;
    }
    printf("===============================\n");
    printf("%4d 年日历\n",year);
    printf("===============================\n");
    for(i=1;i<=12;i++){
        printf("%d月\n",i);
        printf("  Su  Mo  Tu  We  Th  Fr  Sa\n");
        switch(i){
           case 1:case 3:case 5:case 7:case 8:case 10:case 12: day=31; break;
           case 2: {
               if(year%4==0&&year%100!=0||year%400==0)
                   day=28;
               else day=29;
                   } break;
           case 4:case 6:case 9:case 11: day=30; break;
        }
        for(j=1;j<=sum;j++)
            printf("    ");
        for(j=1;j<=day;j++){
            printf("%4d",j);
            if((j+sum)%7==0)
                printf("\n");
        }
        sum=(sum+day)%7;
        printf("\n");
    }
}


这个万年历只能竖着打,那个高手能指点一下改成两个月打一行


搜索更多相关主题的帖子: 万年历 
2010-04-21 16:39
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:10 
#include <stdio.h>

int main()
{
    int year, days, sum, sum1;
    int a[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
    printf("input the year:");
    scanf("%d", &year);
   
    if( (year%4==0&&year%100!=0) || year%400==0 )
        days=366;
    else
    {
        days = 365;
        a[1] = 28;
    }
    if( year>=2000 )
        sum = (days%7+6)%7;
    else
        sum = (6-days%7)%7;

    printf("======================\n");
    printf("\t%d年\n", year);
    printf("======================\n");

    int i, j, k, flag=1, count=0;

    for(i=1; i<=12; i=i+2)
    {
        printf("%d月",i);
        printf("\t\t\t\t\t%d月\n",i+1);
        printf("  Su  Mo  Tu  We  Th  Fr  Sa");
        printf("\t\t  Su  Mo  Tu  We  Th  Fr  Sa\n");
////////////////////////////////////////////////////////
        sum1 = (sum+a[i-1])%7;
        for( j=1; j<=sum; j++)
            printf("    ");
        for( k=1,j=1; j<=a[i-1]; j++)
        {
            printf("%4d", j);
            if( (j+sum)%7==0 || j==a[i-1] )
            {
                count = 0;
                if( j==a[i-1] )
                    while( (j+sum+count)%7!=0 )
                    {
                        printf("    ");
                        count++;
                    }
                printf("\t\t");
                if( flag==1 )
                {
                    for( count=1; count<=sum1; count++ )
                        printf("    ");
                }
                for( ; k<=a[i]; )
                {
                    flag++;
                    printf("%4d", k);
                    if( (k+sum1)%7==0 )
                    {
                        k++;
                        break;
                    }
                    k++;
                }
                printf("\n");
            }            
        }
        if( k!=a[i]+1 )
        {
            printf("\t\t\t\t\t");
            do
            {
               
                printf("%4d",k);
                k++;
            }while( k!=a[i]+1 );
            printf("\n");
        }

        flag=1;
        sum = (sum1+a[i])%7;
        printf("\n");
    }
    return 0;
}

2010-04-22 11:51
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
sum=(days%7+6)%7;
sum=(6-days%7)%7;;
能不能说说 这是根据什么来算的
2010-04-22 11:52
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:10 
万年历有点长  看看你的在说先

Discuz!  
好好学习  天天向上
2010-04-22 22:55
wbajieng
Rank: 1
等 级:新手上路
帖 子:20
专家分:1
注 册:2010-3-28
收藏
得分:0 
回复 3楼 寒风中的细雨
我也说不清就是根据给定的2000年1月1日是星期六然推出来的
2010-04-24 00:10
wbajieng
Rank: 1
等 级:新手上路
帖 子:20
专家分:1
注 册:2010-3-28
收藏
得分:0 
回复 2楼 寒风中的细雨
哈哈哥们真强
我试了试可以
谢了啊
2010-04-24 00:16
acyxc
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-12-5
收藏
得分:0 
你可以先根据具体情况写出后一日和前一日的决策表。根据决策表写似乎就不会错了。当然,首先分类要正确。
2010-12-05 20:18
快速回复:谁能帮我修改一下这个万年历
数据加载中...
 
   



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

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