首页 > 其他 > 详细

输入不同year,month,打印月历

时间:2019-11-05 12:13:04      阅读:102      评论:0      收藏:0      [点我收藏+]

提示:技术分享图片

思路:先算出每月1号星期几week;输出前先打印week个空格,再输出,然后7个换行。

/*
输入年、月份,打印日历
*/
#include <stdio.h>
#include<string.h>
int func(int y){
    int rs;
    rs=0;
    if(y%4==0&&y%100!=0||y%400==0){
        rs=1;
    }
    return rs;
}

void main(int argc,char *argv[])
{
    int month[5][7];
    int y,m,rs,nowday,agoday,sumday,week;
    int y1[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    int y2[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int i,j;
    i=0;j=0;agoday=0;nowday=0;sumday=0;
    scanf("%d%d",&y,&m);
    rs=func(y);
    for(i=1900;i<y;i++){
        if(rs){
            agoday+=366;
        }else{
            agoday+=365;
        }
    }
    for(i=1;i<m;i++){
        if(rs){
            nowday+=y1[i];
        }else{
            nowday+=y2[i];
        }
    }
    sumday=agoday+nowday+2;
    week=sumday%7;
    printf("7  1  2  3  4  5  6\n");
    if(rs){
        for(i=0;i<week;i++){
            printf("   ");
            j++;
        }
        for(i=1;i<=y1[m];i++){
            printf("%-3d",i);
            j++;
            if(j%7==0){
                printf("\n");
            }
        }
    }else{
        for(i=0;i<week;i++){
            printf("   ");
            j++;
        }
        for(i=1;i<=y2[m];i++){
            printf("%-3d",i);
            j++;
            if(j%7==0){
                printf("\n");
            }
        }
    }
}

 

 

输入不同year,month,打印月历

原文:https://www.cnblogs.com/zhaohuan1996/p/11797488.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!