求一个输入年月日,可以显示该月份日历的C语言程序! 求大神帮忙,谢谢!

求一个输入年月日,可以显示该月份日历的C语言程序! 求大神帮忙,谢谢!,第1张

#include<stdio.h>

/*得到所输入年月的第一天是星期几0~6*/

int getdate(int y,int m)

/*判断所输入的是否是闰月,是则返回1,否则返回0*/

int leap(int y)

/*打印输入月份月历表*/

void print(int y,int m)

int main()

{

    int y,m

    printf("输入年份和月份:")

    scanf("%d%d",&y,&m)

    print(y,m)

    return 0

}

int getdate(int y,int m)

{

    int w=(y+(y-1)/4-(y-1)/100+(y-1)/400)%7

    int days=0

    switch(m)

    {

        case 12: days+=30

        case 11: days+=31

        case 10: days+=30

        case 9:  days+=31

        case 8:  days+=31

        case 7:  days+=30

        case 6:  days+=31

        case 5:  days+=30

        case 4:  days+=31

        case 3:  if(leap(y)) days+=29

                 else days+=28

        case 2:  days+=31

        case 1:  days+=0

        }

    w=(w+days)%7

    return w     /*返回输入月份1号的星期*/

}

void print(int y,int m)

{

    int w=getdate(y,m)

    printf("%d年%d月的月历表:\n\n",y,m)

    printf("\n==========================="

            "========================\n\n")

    int month[12]={31,28,31,30,31,30,31,31,30,31,30,31}

    if(leap(y)) month[1]=29

    printf("SUN\tMON\tTUE\tWED\tTHU\tFRI\tSAT\n")

    int i,j

    for(i=0i<wi++) printf("\t")

    for(i=w,j=1j<=month[m-1]i++,j++)

    {

        if(i%7==0) printf("\n")

        printf("%d\t",j)

        }

    printf("\n\n========================"

           "===========================\n\n")

    }

int leap(int y)

{

    if((y%4==0&&y%100!=0)||y%400==0) return 1

    return 0

    }


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7166739.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-02
下一篇2023-04-02

发表评论

登录后才能评论

评论列表(0条)

    保存