C语言简易万年历带注释
同学问的课后作业,顺便加了写注释。
#include<stdio.h>
/*
* 注意 每周的第一天是星期天
*/
int main() {
int day_per_mo[12] = {
31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31
}; // 12个月的天数
int fir_weekday[12]; // 12个月的第一天是星期几
int i, year = 0, month;
printf("输入年份:");
scanf("%d", &year);
if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) { // 判断是否为闰年
day_per_mo[1] = 29;
}
fir_weekday[0] =
(int) (year - 1 + (year - 1) / 4.0 - (year - 1) / 100.0 + (year - 1) / 400.0 + 1) % 7; // 计算该年第一天是星期几
// 365 % 7 = 1
// 366 % 7 = 2
// 距离公元元年的天数 + 闰年数 同余 当年第一天是星期几 mod 7
for (i = 1; i < 12; i++) {
fir_weekday[i] = (day_per_mo[i - 1] + fir_weekday[i - 1]) % 7;// 计算每个月的第一天是星期几
}
int opt = 0;
while (1) {
printf("请输入月份:");
scanf("%d", &opt);
if (opt < 0 || opt > 12) {
printf("输入错误");
continue;
}
break;
}
for (month = 0; month < 12; month++) {
if (opt != 0 && opt != month + 1) continue;
printf("\n %d月\n", month + 1); // 输出月份
printf("\n 日 一 二 三 四 五 六\n"); // 输出星期表头
for (i = 0; i < fir_weekday[month] * 3; i++)
printf(" "); // 输出第一天前的空格,占用位
for (i = 1; i <= day_per_mo[month]; i++) {
printf("%3d", i); // 输出日期
if ((i + fir_weekday[month]) % 7 == 0)
printf("\n"); // 到周六换行
}
printf("\n");
}
return 0;
}
C语言简易万年历带注释的更多相关文章
- PowerDesigner从Sqlserver中反转为带注释的字典及快捷键操作
PowerDesigner的操作经常忘记,所以把常用的功能记录下来备忘. 1.修改反转过来的字段 PowerDesigner从数据库反转的时候,默认不带注释,需要先进行修改. 输入如下脚本: {OWN ...
- PowerDesigner15.1创建模型及生成带注释sql操作手册
转自:http://blog.csdn.net/huiwenjie168/article/details/7824029 一.创建模型 操作:file-->new Model… 快捷键:ctrl ...
- T4 模板自动生成带注释的实体类文件
T4 模板自动生成带注释的实体类文件 - 只需要一个 SqlSugar.dll 生成实体就是这么简单,只要建一个T4文件和 文件夹里面放一个DLL. 使用T4模板教程 步骤1 创建T4模板 如果你没有 ...
- robotlegs2.0框架实例源码带注释
robotlegs2.0框架实例源码带注释 Robotlegs2的Starling扩展 有个老外写了robotleges2的starling扩展,地址是 https://github.com/brea ...
- IDEA设置生成带注释的getter和setter解决方案 (图文教程)
近日在研究重构代码的时候有用到idea的不少插件,比如CheckStyle,同时下载了阿里的开发规约,收到不少启发. 规约中会要求所有的方法都有Javadoc,但是通常我们用idea默认生成的gett ...
- 利用SHA-1算法和RSA秘钥进行签名验签(带注释)
背景介绍 1.SHA 安全散列算法SHA (Secure Hash Algorithm)是美国国家标准和技术局发布的国家标准FIPS PUB 180-1,一般称为SHA-1.其对长度不超过264二进制 ...
- fortran常用语句--读写带注释文档、动态数组等语法
1.判断读取文档有多少行数据(文档最后的空行不计入其中): 首先在变量定义区域下方和执行语句前声明在程序中要被调用的GetFileN函数: external GetFileN 接下来在函数外部后边写上 ...
- Dart 语言简易教程系列
google Fuchsia系统 及 dart语言简介 在 InteIIiJ IDEA 中搭建 Dart 的开发环境 Dart Linux 开发环境搭建 Dart 语言简易教程(一) Dart 语言简 ...
- SQLServer之数据库表转化为实体类【带注释】
1.在开发过程中,有时候需要将数据库表转化为实体类.手敲除了不方便,还容易出错.本着DRY+懒人原则,参考了一位老司机的博客[见底部],并在其基础上进行了优化.[原先是不带注释的] DECLARE @ ...
- js中的经典案例--简易万年历
js中的经典案例--简易万年历 html代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...
随机推荐
- RabbitMQ和RPC
消息队列 消息队列中间件 (Message Queue Middleware,简称 MQ) 是指利用高效可靠的消息传递机制进行与平台无关的数据交流,它可以在分布式环境下扩展进程间的数据通信,并基于数据 ...
- Python函数每日一讲 - 简洁快速学会globals()函数
引言 在 Python 中,globals() 函数是一个强大的工具,它允许您访问全局命名空间中的所有变量和函数.本文将深入探讨 globals() 函数的语法.用法以及实际应用场景,帮助大家更好地理 ...
- 从零开始学Spring Boot系列-返回json数据
欢迎来到从零开始学Spring Boot的旅程!在Spring Boot中,返回JSON数据是很常见的需求,特别是当我们构建RESTful API时.我们对上一篇的Hello World进行简单的修改 ...
- Jenkins+maven+svn+tomcat持续集成环境
前言 团队最近要把项目发布的工作拿过来,所以需要一个持续集成发布系统 直接上步骤. 下载 http://mirrors.jenkins-ci.org/war/latest/ 直接下载war包,我下载的 ...
- 从全球顶级数据库大会 SIGMOD 看数据库发展趋势
本文来自 NebulaGraph 的软件工程师文豪在美国费城参加 2022 年 SIGMOD 大会时的见闻.SIGMOD 是数据库领域的顶级会议之一,是 CCF 数据库 / 数据挖掘 / 内容检索领域 ...
- BeanShell Sample 如何使用?
一 引入: eanShell Sample主要用于生成一些逻辑复杂的数据,例如用于加解密数据: **每次调用前重置bsh.Interpreter:每个BeanShell副本都有自己的解释器副本(每个线 ...
- Netty笔记(7) - 使用Netty 模仿 Dubbo 实现简单的 远程调用
使用Netty 模仿 Dubbo 实现简单的 远程调用 使用 java的反射 动态代理 加 Netty的远程访问 实现根据接口的RPC 远程调用 定义两个公共接口: public interface ...
- 字典嵌套列表 与 列表嵌套字典 导出为csv 的方法
字典嵌套列表 导出csv {'rank': ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '1 ...
- 7、zookeeper应用场景-分布式锁
分布式锁 实现原理:有序节点+watch监听机制实现 分布式锁有多种实现方式,比如通过数据库.redis都可实现.作为分布式协同工具Zookeeper,当然也有着标准的实现方式.下面介绍在zookee ...
- centos 添加 公钥,root不用输入密码 ssh-keygen
centos 添加 公钥,root不用输入密码 ssh-keygen -t rsa -C "yourEmail" 一通回车后,生成 C:\Users\Reciter/.ssh/id ...