linux万年历,万年历_十万代码进行时的技术博客_51CTO博客
这是一个实现万年历的程序,我从书上copy到TC.exe上,再修改了多次依然未能完美的呈现万年历的效果。各位高手教教我吧~!注释部分纯属我个人的理解,还有我不理解之处。
#include
int IsLeapYear(int);
main()
{
int i,day,year,temp,temp_i;
long int Year_days=0;
int Year_Start=1;
int Per_Year_Days;
int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};
printf("please input the year: ");
scanf("%d",&year);
while(Year_Start < year)/*while循环让Year_Start比所输入的年份多一年*/
{
if(IsLeapYear(Year_Start))
Per_Year_Days=366;
else
Per_Year_Days=365;
Year_days=Year_days+Per_Year_Days;
Year_Start++;
}
for(temp=1;temp<=12;temp++)/*循环输出一年12个月*/
{
switch(temp)
{
case 1:
printf("January(%d)\n",year);
break;
case 2:
printf("February(%d)\n",year);
break;
case 3:
printf("March(%d)\n",year);
break;
case 4:
printf("April(%d)\n",year);
break;
case 5:
printf("May(%d)\n",year);
break;
case 6:
printf("June(%d)\n",year);
break;
case 7:
printf("July(%d)\n",year);
break;
case 8:
printf("August(%d)\n",year);
break;
case 9:
printf("September(%d)\n",year);
break;
case 10:
printf("October(%d)\n",year);
break;
case 11:
printf("November(%d)\n",year);
break;
case 12:
printf("December(%d)\n",year);
break;
}
i=Year_days%7; /*这个i=Year_days%7在后面的i是否等于0用到,我真的很不明白这个i到底有什么用。365和366跟7求余都不会等于0 的啦*/
printf("Mon Tue Wed Thu Fri Sat Sun\n");
if(i!=0)
for(temp_i=0;temp_i
printf(" ");
day =1;
if(IsLeapYear(year)&&temp==2)
while(day<= month_day[12])
{
if(day>1)
if(Year_days%7==0)
printf("\n");
if(day>=10)
printf("%d ",day);
else
printf("%d ",day);
Year_days++;
day++;
}
else
while(day<=month_day[temp-1])
{
if(day>1)
if(Year_days%7==0)
printf("\n");
if(day>=10)
printf("%d ",day);
else
printf("%d ",day);
Year_days++;
day++;
}
printf("\n");
if(getch()=='q')/*这个if语句里的条件我不明白是什么意思,程序由始至终都没出现'q'呀*/
exit(0);
}
getch();
}
int IsLeapYear(int year)/*判断闰年,因为闰年多一天要输出*/
{
if((year%4==0)&&(year%100!=0)||(year%400==0))
return 1;
else
return 0;
}
程序完毕!
注释里有我不明白的地方,知道的高手请多多指教!
linux万年历,万年历_十万代码进行时的技术博客_51CTO博客相关推荐
- linux pclint配置_自动代码检查分享之PCLINT
当我们花了很长时间来重现和排查一个问题后,发现原来是由于变量未赋初始值:当我们排查一个客户重大异常后,发现原因尽然是IF判断时用了单等号.这些都是比较低级的问题,但凡一个有基础的程序员都能看出来写错了 ...
- linux给文件夹腹权限,文件的权限_腹有诗书气自华的技术博客_51CTO博客
1.文件与目录属性 # ls -l filename###文件属性查看 -rwxr-xr-x.2rootroot 6Oct 2 09:42file 第一列:文件类型和文件权限 如果这一位上有 ...
- 鸿蒙安装elasticsearch7,安装操作系统_岁寒,然后知松柏之后凋也的技术博客_51CTO博客...
安装操作系统 了解了主流操作系统后,我们就要开始进入学习之中了,而学习之前,首先得做的就是安装操作系统 接下来就开始进行操作系统安装的步骤吧 linux操作系统安装有两种方式 1.文本安装 优点:可以 ...
- c语言用十年算入门,初识C语言_十年饮冰 难凉热血的技术博客_51CTO博客
今天学习了C语言的字符串和转义字符:我总结了如下的一些知识点来和初学C语言的小伙伴们 分享一下!也希望能得到大家的指点或者能和大家一起讨论! 字符串的定义:"hello"像这种由双 ...
- linux kdb,kdb命令_linux虚拟内存的技术博客_51CTO博客
dmesg: 该命令用于打印内核的相关信息 kill: 向进程发送信号 语法:kill - lsmod: 列出了系统中所有的当前系统中可装载模块的信息 第一列:模块名 第二列:模块的代码量 第三列:模 ...
- android 有vi命令行,vi命令详解_游离在Android与ios之间的技术博客_51CTO博客
vi 简易说明 要管理好 Linux 系统﹐少不了要对设定档案进行编辑,如果您用惯了 Microsoft Word 或 Corel Wordperfect 的话,除了 Xwindows 里面的编辑程式 ...
- arm linux下 chkntfs,XPE开机自动扫描相关_Windows Embedded Standard 7 嵌入式定制的技术博客_51CTO博客...
1,XPE中与非正常关机后开机自动扫描磁盘相关的组件是:Fat/NTFS Common Format/ToolsFiles. 内含chkdsk.exe,chkntfs.exe等. 2,应用程序相关: ...
- linux下数据库的基本管理,数据库的管理_linux 运维之道 基础篇的技术博客_51CTO博客...
{**数据库**} 1.安装: yum install mariadb-server.x86_64 -y安装服务 systemctl start mariadb 开启服务 systemctl s ...
- linux tar zcfp 打包,tar命令_Study-Everyday的技术博客_51CTO博客
tar命令主要用于对文件或目录进行打包或解包 语法参数参数含义说明 -zzip使用zip进行解压或压缩 -jbzip2使用bzip2进行解压或压缩 -ccreate创建一个打包文件 -xextract ...
最新文章
- Python 最强编辑器详细使用指南!
- JS中try....catch
- 改善DataGrid的默認分頁使其更友好
- hihocoder #1343 : Stable Members(支配树)
- c++ 预处理命令 #if, #ifdef, #ifndef, #else, #elif, #endif用法
- 历届试题 分考场(DFS,染色问题)
- java 18 -4 LinkedHashMap集合
- centos查看当前目录下文件大小_centos Linux 统计某个文件夹占用空间大小
- 赚钱的方法地推拉新一定算一个
- 我为何不再愿意打一份朝九晚五的工?
- C++ static、const和static const类型成员变量声明及其初始化
- conda - 创建虚拟环境并配置tensorflow-gpu
- 管理与决策这属于计算机在什么方面的应用,闽高校计算机一级考试选择题题库...
- VBA在工作中的应用-批量添加工资条表头的VBA代码
- POST参数转为DICT
- centos7 分辨率修改_centos系统修改屏幕分辨率问题
- php难学习吗,学php难吗
- 计算机新建怎么没有表格,为什么新建找不到excle:为什么电脑新建项目里没有EXCEL表格?...
- 计算机电源常见的认证有哪些,看清电源的各种认证
- 什么是响应式设计?响应式设计的基本原理是什么?如何做