c/c++语言开发共享使用C语言打印月历

打印日历应该是程序员入门时候的一个基础练习。打印一年的日历有许多不同的实现,我这里提一个可以实现的方法。首先需要确定该年是闰年还是平年,闰年的二月是29天,全年是366天;平年二月是28天,全年365

打印日历应该是程序员入门时候的一个基础练习。打印一年的日历有许多不同的实现,我这里提一个可以实现的方法。首先需要确定该年是闰年还是平年,闰年的二月是29天,全年是366天;平年二月是28天,全年365天。还需要确定该年的每一天是星期几。从0001年1月1日是星期一开始,该值可以通过使用该年到元年的总天数模7来求得。最后考虑怎样输出日历,可以先将日历存储在一个二维数组里面,也可以直接将它输出。

  #include<stdio.h>    /*判断是平年还是闰年*/  int isleap (int year) {      if((year%4==0)&& (year%100!=0) || (year%400==0))        return 1;      else        return 0;  }  /*计算今年的第一天是星期几*/  int firstweeday (int year) {      int days = (year-1)*365 + (year-1)/4 - (year-100)/100 + (year-1)/400;      return days%7;  }  /*打印星期*/  void printweedtitl () {      int i;      for(i = 0;i<7;i++){          switch(i) {              case 0 : printf("  sun  ");break;              case 1 : printf("mon  ");break;              case 2 : printf("tue  ");break;              case 3 : printf("wed  ");break;              case 4 : printf("thu  ");break;              case 5 : printf("fri  ");break;              case 6 : printf("sat  ");break;              default : break;          }      }      printf("n");  }  /*打印月份*/  void printmontitl(int month) {     switch(month) {       case 0 : printf("jann");break;       case 1 : printf("febn");break;       case 2 : printf("marn");break;       case 3 : printf("aprn");break;       case 4 : printf("mayn");break;       case 5 : printf("junn");break;       case 6 : printf("juln");break;       case 7 : printf("augn");break;       case 8 : printf("sepn");break;       case 9 : printf("octn");break;       case 10 : printf("novn");break;       case 11 : printf("decn");break;       default : break;     }  }  /*格式化输出日历*/  void printyear (int year) {      int m,i,d;      char c=' ';      int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};      if(isleap(year)) month[1] = 29;      int firstwed = firstweeday(year);      printf("year: %dn",year);      printf("========================n");      for(m = 0;m<12;m++) {        printmontitl(m);        printweedtitl();        for(d=1;d<=month[m];d++) {          if(d == 1) {              for(i = 0;i<firstwed;i++)                printf("%5c",c);              printf("%5d",d);          }          else {              printf("%5d",d);          }                     if((firstwed+d-1)%7 == 6) printf("n");        }         firstwed = (firstwed + month[m])%7;        printf("n");     }    }  /*测试结果*/  int main() {      int year = 2016;      printyear(year);  }

代码的测试结果如下:

使用C语言打印月历

以上就是c/c++开发分享使用C语言打印月历的全部内容,希望对大家的学习有所帮助,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

需要了解更多c/c++开发分享使用C语言打印月历,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/637915.html

(0)
上一篇 2021年6月14日
下一篇 2021年6月14日

精彩推荐