zoukankan      html  css  js  c++  java
  • 26.利用while循环打出月历表

    /*

    */
    #include "stdio.h"
    void main()
    {
    int y,m,week,sumdays=0,maxdays;
    int n;
    int i;

    n=0;
    printf("请输入年份数:");
    yy:n=scanf("%d",&y);
    if(n!=1||y<1900)
    {
    printf("年份输入有误,请重输:");
    fflush(stdin);
    goto yy;
    }

    n=0;
    printf("请输入月份数:");
    mm:n=scanf("%d",&m);
    if(n!=1||m<1||m>12)
    {
    printf("月份输入有误,请重输:");
    fflush(stdin);
    goto mm;
    }

    //下面这个循环是解决了完整年的总天数
    i=1900;
    while(i<=y-1)
    {
    if(i%4==0&&i%100!=0||i%400==0)
    sumdays+=366;
    else
    sumdays+=365;
    i++;
    }
    printf("%d",sumdays);

    //下面这个循环是解决了完整月的总天数
    i=1;
    while(i<=m-1)
    {
    switch(i)
    {
    case 1:case 3:case 5:case 7:case 8:case 10: case 12:
    maxdays=31;break;
    case 4:case 6:case 9:case 11:
    maxdays=30;break;
    case 2:
    if(y%4==0&&y%100!=0||y%400==0)
    maxdays=29;
    else
    maxdays=28;
    break;
    }
    sumdays+=maxdays;
    i++;
    }

    //下一句把我们输入的那一年那个月的1号加入到总天数
    sumdays+=1;

    //求出输入的那一年那个月的1号是星期几
    week=sumdays%7;

    printf(" %d年%d的月历表如下: ",y,m);
    printf("日 一 二 三 四 五 六 ");

    //输出与星期数相同的空格数
    i=1;
    while(i<=week)
    {
    printf(" ");
    i++;
    }

    //先计算出你输入的那个月的最大天数
    switch(m)
    {
    case 1:case 3:case 5:case 7:case 8:case 10: case 12:
    maxdays=31;break;
    case 4:case 6:case 9:case 11:
    maxdays=30;break;
    case 2:
    if(y%4==0&&y%100!=0||y%400==0)
    maxdays=29;
    else
    maxdays=28;
    break;
    }

    //打印出1号到当月的最大天数
    i=1;
    while(i<=maxdays)
    {
    if(i<10)
    printf("0%d ",i);
    else
    printf("%d ",i);
    if((i+week)%7==0)
    printf(" ");
    i++;
    }
    }

  • 相关阅读:
    打印机无法访问打印机怎么连
    IDEA 2018 LICENSE SERVER
    idea 项目打包发布
    Oracle的关于小数的使用
    js代码实现购物车效果
    通过shell定时备份数据库
    (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM
    (一)Linux实操之——权限、任务调度、磁盘分区
    idea搭建简易ssm项目
    idea右键无法新建Java Class
  • 原文地址:https://www.cnblogs.com/wyj1212/p/9006564.html
Copyright © 2011-2022 走看看