| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1227 人关注过本帖
标题:菜鸟求助,求打出某年某月月历,要区分闰年
只看楼主 加入收藏
sdvethen
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-18
结帖率:0
收藏
 问题点数:0 回复次数:5 
菜鸟求助,求打出某年某月月历,要区分闰年
求打出求打出某年某月月历,要区分闰年。
急,谢谢了!!!
搜索更多相关主题的帖子: 月历 闰年 
2008-07-23 23:40
xiaomengxia2008
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2008-7-23
收藏
得分:0 
回复 1# sdvethen 的帖子
#include <stdio.h>

int JgYr(int yr)
{
 if (yr%4==0&&yr%100!=0&brvbar;&brvbar;yr%100==0&&yr%400==0)
 return 1;
 else
 return 0;
}

int CalWkd(int yr,int mth)
{
 int ds=0,i,rst,wkd;
 int mthd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 if (JgYr(yr))
 mthd[2]=29;
 for (i=1;i<mth;i++)
 ds+=mthd[i];
 ds+=1;
 rst=yr-1+(int)((yr-1)/4)-(int)((yr-1)/100)+(int)((yr-1)/400)+ds;
 wkd=rst%7;
 return wkd;
}

showcld(int wkd,int mtd)
{
 int dt=1,i,j=0;
 printf("Sun\tMon\tTue\tWed\tThu\tFri\tSat\n");
 for (i=0;i<wkd;i++)
 {
 printf("\t");
 j++;
 }
 while (j!=7)
 {
 printf("%d",dt);
 if (j<6)
 printf("\t");
 else
 printf("\n");
 dt++;
 j++;
 }
 while (1)
 {
 for (j=0;j<7;j++)
 {
 printf("%d",dt);
 if (j!=6)
 printf("\t");
 else
 printf("\n");
 if (dt!=mtd)
 dt++;
 else
 return 0;
 }
 }
 }

int main()
{
 int yr,mth,mtd,wkd,mthd[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 printf("Input the Year and Month(Year-Month):");
 scanf("%d-%d",&yr,&mth);
 if (yr<0&brvbar;&brvbar;mth<1&brvbar;&brvbar;mth>12)
 return 0;
 if (JgYr(yr))
 mthd[2]=29;
 mtd=mthd[mth];
 wkd=CalWkd(yr,mth);
 showcld(wkd,mtd);
 return 0;
}

不是我写的,你看看吧!
2008-07-24 09:38
病书生
Rank: 1
等 级:新手上路
帖 子:93
专家分:0
注 册:2007-11-8
收藏
得分:0 
#include<stdio.h>
int a[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30,31,30,31}};
int year,month,weekday;
int rn(int y)
{
    if(y%4==0&&y%100!=0||y%400==0)
        return 1;
    else
        return 0;
}
void printfm(int m,int j)
{
    int i;
    printf("%d月              六\n",m);
    printf("  ");
    for(i=0;i<weekday;i++)
    {
        printf("  ");
    }
    for(i=1;i<=a[j][m-1];i++)
    {
        printf("%5d",i);
        weekday=(weekday+1)%7;
        if(weekday==0)printf("\n");
    }
}

void main()
{
    int j;
    printf("输入年份: ");
    scanf("%d",&year);
    weekday=year-1+(year-1)/4-(year-1)/100+(year-1)/400+1;
    weekday=weekday%7;
    j=rn(year);
    printf("\n");
    printf("%d\n",year);
    for(int i=1;i<=12;i++)
    {
        printfm(i,j);
        printf("\n");
    }
}
自己整理下输出的格式吧
2008-07-24 10:35
sdvethen
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2007-4-18
收藏
得分:0 
谢谢,挺急的,我整理下看看
2008-07-24 19:42
蓝色神话
Rank: 2
等 级:论坛游民
威 望:1
帖 子:404
专家分:24
注 册:2006-5-11
收藏
得分:0 
又是一个平时不注意积累的孩子!
2008-07-24 20:44
coming
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2008-4-20
收藏
得分:0 
呵呵~~~~~~
2008-07-24 22:28
快速回复:菜鸟求助,求打出某年某月月历,要区分闰年
数据加载中...
 
   



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

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