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++;
    }
    }

  • 相关阅读:
    使用Systrace分析UI性能
    android官方推荐的网络调优器AT&T ARO
    HttpResponseCache 网络缓存使用
    SectionIndexer中的getSectionForPosition()与getPositionForSection()
    MVVM_Android-CleanArchitecture
    Android UI:机智的远程动态更新策略
    Data Binding
    Android实战之你应该使用哪个网络库?
    View以自身中心旋转的代码解惑
    为什么要使用puppet 及初步接触
  • 原文地址:https://www.cnblogs.com/wyj1212/p/9006564.html
Copyright © 2011-2022 走看看