C语言输入年份显示日历,输入年份并输出当年的日历
要求:用调用函数实现,每个函数完成一个功能;
思路:
1. main函数中只出现输入年份,和打印年份月数的函数;
2. 输入年份函数;
3. 打印年份日历函数:用循环实现1-12月的打印,调用月份打印函数
4.打印月份函数
5. 返回月数名称的函数
6. 计算year的month的天数的函数
7. 计算year的month的第一天是星期几的函数
8.判断year是否是闰年
9. 打印某月的第一天以前的空格数;
#include#includeint enter_year(void);//输入年份函数
_Bool leap_year(int year);//判断是否为闰年函数
void print_calendar(int year); //打印日历函数
void print_month(int month);//打印月份名称函数
int days_num(int year,int month);//返回该月天数函数
void print_week(void);//打印周一到周日
int firstday(int year,int month);//返回该月第一天是周几函数
void print_space(int year,int month);//空格缩进函数
int main()
{
//while(1)
//{
print_calendar( enter_year() );
//}
return 0;
}
int enter_year(void)//输入年份函数,并返回输入值
{
printf("please enter the year:");
int year;
scanf("%d",&year);
printf("\n");
return year;
}
_Bool leap_year(int year)//判断是否为闰年函数
{
if( (year%400 == 0) || (year%4==0 && year%100!=0) )
return true;
else
return false;
}
void print_calendar(int year)//打印年份日历函数
{
int i;
int j;
int count;
for(i=1; i<=12; i++)
{
print_month(i);
print_week();
print_space(year,i);
count=firstday(year,i)+1;
for(j=1; j<=days_num(year,i); j++)
{
printf("%-2d ",j);//左对齐,宽度为2
if( count%7 == 0 && j!=days_num(year,i) )//避免某月最后一天也正好换行
{
printf("\n");
//count=0;
}
count ++;
}
printf("\n");
}
}
void print_month(int month)//打印月数名称函数
{
switch(month)
{
case 1:printf(" JANUARY:\n");
break;
case 2:printf(" FEBRUARY:\n");
break;
case 3:printf(" MARCH:\n");
break;
case 4:printf(" APRIL:\n");
break;
case 5:printf(" MAY:\n");
break;
case 6:printf(" JUNE:\n");
break;
case 7:printf(" JULY:\n");
break;
case 8:printf(" AUGUST:\n");
break;
case 9:printf(" SEPTMBER:\n");
break;
case 10:printf(" OCTOBER:\n");
break;
case 11:printf(" NOVEMBER:\n");
break;
case 12:printf(" DECEMBER:\n");
break;
default :
break;
}
}
int days_num(int year,int month)//返回该月天数函数
{
switch(month)
{
case 2:if( leap_year(year) )
{
return 29;
}
else
return 28;
break;
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 4:
case 6:
case 9:
case 11:
return 30;
break;
default :
break;
}
}
void print_week(void)//打印周日到周一
{
printf("Mon Tue Wen Thu Fri Sat Sun\n");
}
int firstday(int year,int month)//该月第一天是周几函数
{
if(month==1 || month==2)//判断是否为1、2月
{
year--;
month+=12;
}
return ( (1+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7 );
//0-6 一到日
}
void print_space(int year,int month)//空格缩进函数
{
int i=0;
while(i
C语言输入年份显示日历,输入年份并输出当年的日历相关推荐
- Java输入年份和第一天的星期,展示全年日历
输入年份和第一天的星期,即可展示全年日历 利用循环每次展示一个月的日历,日历每一行作为一个字符串,长度定为28 根据观察可知,第一天的星期几加7之后除以7取余则可知道该月第一天之前有几天空着,每天字符 ...
- 输入年份和月份,输出该月日历。
简述思路 接收键盘数据得到年份和月份,判断是否为闰月,若为将2月天数改为29天 利用Calendar类找到该月份1号是周几 打印日历,逢7换行 package day8;import java.uti ...
- 写代码:输入一年份,判断该年份是否是闰年并输出结果。
# 输入一年份,判断该年份是否是闰年并输出结果.# 注: 凡符合下面两个条件之一的年份是闰年.# 1. 能被4整除但不能被100整除.# 2. 能被400整除. year = int(input(&q ...
- html自动年份版权,如何将html5日期输入限制在合理的年份
html5 input type ='date'用于Chrome中以输入最新免费jqgrid中的日期.如何将html5日期输入限制在合理的年份 它允许输入5位数字的日期,如20161. 如何解决此问题 ...
- 编写程序,输入本金、年利率和年份,计算复利(结果保留2位小数)
题目: 编写程序,输入本金.年利率和年份,计算复利(结果保留2位小数).运行效果如下: 请输入本金:2000 请输入年利率:5.6 请输入年份:5 本金利率和为:2626.3 1.引入库 代码如下(示 ...
- 输入年月日,各种判断年份(平润年)来输出这是多少年的第几天
通过输入年月日,各种判断年份(平润年)来输出这是多少年的第几天 用switch方法1: const readline = require('readline-sync'); console.log(' ...
- 在Putty或mRemote下输入和显示中文
如果你安装的时候默认语言选的是中文,那么基本上不需要什么设置 而如果你默认选择的是英文的,就需要将编码改变一下, 我在RHEL AS4 u2下, # export LC_ALL= 'zh_CN.utf ...
- c语言怎么循环输入单个字符,c语言 帮我检查一下 输入一段文字,每行用回车结束,文字输入完毕可以使用某个特殊字符作为结束,...
c语言 帮我检查一下 输入一段文字,每行用回车结束,文字输入完毕可以使用某个特殊字符作为结束,0 HIDE152019.04.28浏览4次分享举报 c语言输入一段文字,每行用回车结束,文字输入完毕可以 ...
- C++STL开发温习与总结(六): 6.C++语言输入/输出流定义之输入/输出格式控制
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://mp.blog.csdn.net/postedit/79177645 C++STL开发温习 ...
最新文章
- 微信推送模板消息的PHP代码整理
- 你想要什么样的财富自由
- IntelliJ IDEA中JAVA连接MYSQL
- 新手入门深度学习 | 3-1:数据管道Dataset
- ipv6计算_移动云多款产品通过工信部IPv6支持能力技术测评
- 汇编程序:将字符串中所有大写字符转为小写
- c语言b20等于多少,C语言程序:温度DS19B20显示
- vs 错误error C2011:类型重定义的解决办法
- MQL5 中如何调用指标
- 为Linux安装CHM阅读器
- mysql 告警日志_错误日志监控报警脚本
- 大豆技术面分析_期货分析是看技术面还是基本面?怎么进行期货分析
- 非零基础自学Golang 第18章 HTTP编程(下) 18.2 HTTP服务端 18.2.2 启动HTTP服务器 18.2.3 启动HTTPS服务器
- Win10安装Docker和k8s
- 贝叶斯公式推导及意义
- jstree的简单使用例子
- 2021最新css3面试题理论,前端css面试题,移动端面试题理论。
- 烤仔建工×MetaEstate×MetaCat | 明天来元宇宙过感恩节!
- mysql 突然报错 1878 Temporary file write failure
- 手把手搭建SpringBoot电子商城网站【附源码】(毕设)
热门文章
- 基于LSB的信息隐藏
- php程序员的出路,php程序员有前途吗
- Java 生成13位条形码 Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。
- POJ 1655 求树的重心(树形dp)
- WPF 几何图形之图形微语言命令
- VMR论文visualization实验总结
- python 利用脚本命令压缩加密文件并删除源文件
- linux客户端连接iscsi,配置ISCSI客户端(LINUX)redhat5-iSCSI-INITIATOR
- 大数据分析的思维方式有哪些
- win10无法连接到win7系统更新服务器,win10系统提示无法连接到windows服务的解决方法...