• step1 . day4 C语言基础练习之日历


    学习完基础循环、选择语句,写一个日历检验水准。

    日历核心:

    1.选择基础参照,用来计算总天数和周几的参照(since 1900.1.1,这天是周一)

    2.闰年平年的判断条件及循环结构

    3.计算需要打印月份的天数、从周几开始的补充空格数、循环换行

    代码参照如下,初级版本,有待进一步优化至万年历(1900年之前还没验证)

    #include <stdio.h>

    int main()
    {
    int basic_year = 1900;
    int i,j,k,m;
    int sum = 0;
    int month_day;
    int year,month;
    int check_year,check_month;

    printf("请输入年份:");
    check_year = scanf("%d",&year);
    while(0 == check_year)
    {
    getchar();
    printf("年份输入错误,请重新输入:");
    check_year = scanf("%d",&year);
    }


    printf("请输入月份(1~12):");
    check_month = scanf("%d",&month);
    while(0 == check_month || month < 1 || month > 12)
    {
    getchar();
    printf("月份输入错误,请重新输入(1~12):");
    check_month = scanf("%d",&month);
    }

    for(i=1900; i<year;i++)
    {
    if((i%100!=0) && (i%4==0) || (i%400==0) )
    sum=sum+366;
    else
    sum=sum+365;
    }

    for(j=1;j<=month;j++)
    {
    if(j==1 || j==3 ||j==5 ||j==7 ||j==8 ||j==10 ||j==12)
    {
    sum=sum+31;
    month_day=31;
    }


    else if(j==4 ||j==6 ||j==9 ||j==11)
    {
    sum=sum+30;
    month_day=30;
    }

    else
    {
    if( (year%400==0) || ((year%100!=0) && (year%4==0)) )
    {
    sum=sum+29;
    month_day=29;
    }
    else
    {
    sum=sum+28;
    month_day=28;
    }
    }
    }
    printf("sum=%d ",sum);

    printf("%d年%d月 ",year,month);
    printf("一 二 三 四 五 六 日 ");
    for(k=0;k<((sum-month_day)%7);k++)
    printf(" ");
    for(m=1;m<=month_day;m++)
    {
    if((m+k)%7==0)
    printf("%d ",m);
    else
    printf("%d ",m);
    }

    return 0;
    }

  • 相关阅读:
    css垂直居中如何实现
    MUI顶部导航布局
    MUI底部导航栏切换效果
    Jsonp跨域问题
    【已解决】项目加载失败,Web应用程序项目XX已配置为使用IIS
    获取网站绝对路径
    css图片上加文字
    c#界面卡死处理方法
    BeginInvoke异步线程
    menustrip选项怎么设置竖向分割线
  • 原文地址:https://www.cnblogs.com/huiji12321/p/11111583.html
Copyright © 2020-2023  润新知