打印英文年历C语言函数,C语言打印年历

voidshow_year(int year)

{inti,j,k,t,n;                           // 用来辅助计数int table[24][21] = {0};                     // 年历数组int month_day[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 每月上限天数if ((0 == year%4 || 0 == year%400) && 0 != year%100)    //闰年检查,如果是闰年,2月上限天数改为29

{

month_day[2] = 29;

}

printf ("******************\n");

printf ("%d \n", year);

printf ("******************\n");for (i=0; i<12; i++)                       // 为了使逻辑更加清晰,一次循环只完成一个月的日期填写,i为当前月份

{n=cal_first(i+1);                     // n为当前月份第一天的星期数,cal_first函数中的月数必须为1~12,for (j=(i/3)*6; j3)*6+6; j++)             // 所以这里传参时+1,j用来根据月数控制每个月在年历数组中的第一维坐标

{                                // 坐标(纵坐标)的位置,同样的,用来根据月数控制每个月在年历数组中for (k=(i%3)*7; k3)*7+7; k++)          // 第二维坐标(横坐标)的位置

{

t= (j%6)*7 + k%7 - n + 2;            // t用来临时记录当前位置应该填入年历数组的值,为了简化逻辑,这里通过if (0 >=t)                     // 数学计算记录每一个位置应填入的值,(j%6)*7 + k%7计算出的值是本

{                           // 月的第几个位置,-n+2就会计算出当前格内正确的日期。这样做会导致得出continue;                    // 负数或0,或炒熟每月天数上限,我们用if + continue将其跳过,这样

}                           // 不正确的日期就依然是年历数组初始化时的0if (t <=month_day[i])

{

table[j][k]=t;

}else{continue;

}

}

}

}for (i=0; i<24; i++)                      // 至此,年历数组已经全部填好,接下来是打印环节,相信已经比较好理解了

{                                 // 每隔6行打印标头,7列多打印几个空格,遇到数组中为0则同样打印空格if (0 ==i)

{

printf ("Jan Feb Mar\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (6 ==i)

{

printf ("Apr May Jun\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (12 ==i)

{

printf ("Jul Agu Sep\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (18 ==i)

{

printf ("Oct Nov Dec\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}for (j=0; j<21; j++)

{if (7 == j || 14 ==j)

{

printf (" ");

}if (0 ==table[i][j])

{

printf (" ");continue;

}

printf ("%4d", table[i][j]);

}

printf ("\n");

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/458880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu14.04配置caffe

ubuntu 14.04 64bit 安装 请自行Google安装&#xff0c;并修改源。 cuda 7.5 安装 cuda7.5下载&#xff0c;选择ubuntu 14.04的deb包下载安装一些可能的依赖 sudo apt-get install linux-headers-$(uname -r) build-essential 安装cuda sudo dpkg –i cuda-repo-<distro>…

iOS开发API常用英语名词

iOS开发API常用英语名词 0. indicating 决定 1.in order to 以便 2.rectangle bounds 矩形尺寸 3.applied 应用 4.entirety 全部 5.technique 方法 6.truncating 截短 7.wrapping 换行 8.string 字符串 9.familiar style 简体 10.The styled text 主题样式 11.Constants 常量 …

Win10 IIS本地部署网站运行时图片和样式不正常?

后期会在博客首发更新&#xff1a;http://dnt.dkill.net 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 启用关闭win功能&#xff0c;开启一下静态内容 收工~

设置IIS会话过期时间

打开默认网站----双击ASP--展开会话属性---更改超时时间-转载于:https://www.cnblogs.com/genesis/p/4816128.html

89c51单片机汇编语言,AT89C2051时钟程序——MCS51单片机汇编程序

;; AT89C2051时钟程序 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;定时器T0、T1溢出周期为50MS&#xff0c;T0为秒计数用&#xff0c; T1为调整时闪烁用&#xff0c;;P3.7为调整按钮&#xff0c;P1口 为字符输出口&#xff0c;采用共阳显示管。;;;;;;;;;;;;;;;;;;;;;;;;;;;;…

c语言结构体指针初始化

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 记得上周在饭桌上和同事讨论C语言的崛起时&#xff0c;讲到了内存管理方面 我说所有指…

WWDC 2013 Session笔记 - iOS7中弹簧式列表的制作

这是我的WWDC2013系列笔记中的一篇&#xff0c;完整的笔记列表请参看这篇总览。本文仅作为个人记录使用&#xff0c;也欢迎在许可协议范围内转载或使用&#xff0c;但是还烦请保留原文链接&#xff0c;谢谢您的理解合作。如果您觉得本站对您能有帮助&#xff0c;您可以使用RSS或…

H5学习之旅-H5列表(8)

列表的基本语法 ol&#xff1a;有序列表 ul&#xff1a;无序列表 li&#xff1a;列表项 dl&#xff1a;列表 dt&#xff1a;列表项 dd&#xff1a;列表描述 常用列表 1.无序列表&#xff1a;使用标签 ul&#xff0c;li 属性&#xff1a;disc&#xff08;默认实心圆&#xff09;…

c语言 文件夹是否纯真,C语言面试题大汇总之华为面试题(转)

1、局部变量能否和全局变量重名&#xff1f;答&#xff1a;能&#xff0c;局部会屏蔽全局。要用全局变量&#xff0c;需要使用 ":: "局部变量可以与全局变量同名&#xff0c;在函数内引用这个变量时&#xff0c;会用到同名的局部变量&#xff0c;而不会用到全局变量。…

virtual析构函数的作用?

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 大家知道&#xff0c;析构函数是为了在对象不被使用之后释放它的资源&#xff0c;虚函…

[codevs1039]数的划分

这一题实际上是组合数学里面的经典问题&#xff0c;跟第二类Stirling数有些相似。可以把一个数值为n的数看成n个小球&#xff0c;划分的份数k看作是k个盒子&#xff0c;那么本题的要求就是&#xff1a; 将n个小球放到k个盒子中&#xff0c;小球之间与盒子之间没有区别&#xff…

c语言中用文件处理数据,C语言文件处理 -C语言从文件中读写格式化数据

从图 1 所示的文件 fin.txt 中读取学生姓名、身高和体重&#xff0c;计算并显示它们的平均值&#xff0c;并且将显示结果保存到文件 fout.txt 中。图 1&#xff1a;输入输出文件示例C语言代码清单 1&#xff1a;读取学生姓名、身高和体重&#xff0c;计算并显示它们的平均值#in…

MySQL于ON DUPLICATE KEY UPDATE采用

今天我们做的推断插入用途MySQL于ON DUPLICATE KEY UPDATE。现在&#xff0c;Mark下面&#xff01;假设你想做的事&#xff0c;再有就是在数据库中插入数据没有数据、如果有数据更新数据&#xff0c;然后你可以选择ON DUPLICATE KEY UPDATE。 ON DUPLICATE KEY UPDATE可以在UNI…

C++中Static作用和使用方法

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 1、什么是static? static 是C中很常用的修饰符&#xff0c;它被用来控制变量的…

三星+android+7.0+自动纠正单词,升级党必看!三星S/Note系列更新Android 7.0指南

上周&#xff0c;雷科技(微信ID&#xff1a;leitech)曾为大家提供了一份Android 7.0升级预测名单。现在为了增加针对性&#xff0c;这次笔者就以三星最热门的两大旗舰S和Note系列为例&#xff0c;给大家提供一个全方面的更新指南。截至目前&#xff0c;三星S系列和Note系列的正…

iOS开发出错whose view is not in the window hierarchy!的解决

大熊猫猪侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 一个简单的单窗口App在运行时出现错误: 2016-04-07 14:28:48.411 BlurViewAndPopView[4364:168520] Warning: Attempt to present <UIAlertCon…

互联网年鉴

最近互联网行业&#xff0c;有一个词说的比较多了&#xff0c;“资本寒冬”。作为&#xff0c;一个在这个行业里干的人&#xff0c;真心是好怕怕呢。 妈蛋&#xff0c;真怕哪天就突然失业了呀。所以&#xff0c;无聊的(操蛋的)去整理了一些98年开始一直到现在的互联网中一些自己…

android oreo 开机动画,Android O添加了一个 Splash Screen API帮助简化启动屏制作

大多数开发者对闪屏(splash screen)都持不同的态度。一些人支持用闪屏隐藏app的加载&#xff0c;然后自然过渡到主界面&#xff0c;而另一些人认为闪屏不管是对用户还是开发者都是浪费时间。谷歌在这个问题上的立场也是不一的&#xff0c;以前不推荐使用闪屏的使用&#xff0c;…

C++空类默认函数

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 定义一个空的C类&#xff0c;例如 class Empty { } 一个空的class在C编译器处理过后就…

拼接SQL的一个技巧

2019独角兽企业重金招聘Python工程师标准>>> 为了避免判断是否要在字符串中加 AND 来连接查询条件&#xff0c;我们可以直接在在WHERE 后面写 id>0。 这样&#xff0c;我们在拼接条件的时候&#xff0c;就可以直接写 AND 了。 SELECT* FROM t_table WHEREid>0…