用c语言实现打印日历

2023-05-16

只要输入年份就能打印出相应的日历

#ifndef MAIN_H
#define MAIN_H

#include "stdio.h"
#include "math.h"
#include "stdlib.h"

//获取某一个月的最大天数 
int monthday(int, int);

//判断闰年 ,是返回1,不是返回0 
int isleapyear(int);

#endif 


int main()
{
    int year, month, days, weekday;
    int i, d;
    while (1)
    {
        printf("please input the year:\n");
        scanf_s("%d", &year);
        days = year - 1 + (year - 1) / 400 + (year - 1) / 4 - (year - 1) / 100;//计算某年第一天是星期几 

        for (month = 1; month <= 12; month++)
        {
            printf("\t\t****%d年--%d月****\n", year, month);
            printf("sun\tmon\ttues\twed\tthur\tfir\tsat\t\n");//表头
            i = 1;    d = 1;
            weekday = (days + 1) % 7;  //求星期几 
            while (i <= weekday)   //输出前面的空格 
            {
                printf("\t");
                i++;
            }

            while (d <= monthday(month, year))     //输出日期 
            {
                weekday = (days + 1) % 7;
                if (weekday == 6)   //最后一个是星期六,输出之后要换行 
                    printf("%d\n", d);
                else             //不是星期六的输出后不换行 
                    printf("%d\t", d);
                if (d == monthday(month, year))
                    printf("\n");
                d++;
                days++;
            }
        }
    }
}

int monthday(int month, int year)
{
    switch (month)
    {
    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;

    case 2:
        if (isleapyear(year))
        {
            return 29;//闰年29天 
            break;
        }
        else
        {
            return 28;
            break;
        }

    }

}


int isleapyear(int year)
{
    if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
        return 1;
    else
        return 0;
}

这是运行结果(2018年的日历)
2018年一月至四月
2018年五月至八月
2018年九月至十二月

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用c语言实现打印日历 的相关文章

随机推荐

  • verilog 学号输入并滚动显示

    TOP module module top input clk100mhz input clr input s input key1 input key2 input key3 input key4 input 2 0 count1 out
  • 生产者消费者模型详解

    生产者消费者模型 文章目录 生产者消费者模型什么是生产者消费者模型基于BlockingQueue的生产者消费者模型单生产者单消费者模型多生产者多消费者模型 什么是生产者消费者模型 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合
  • Verilog 电子秤设计

    能跑就行系列 仅供参考 xff08 xff09 功能 单次计价 xff1a 输入物品的重量 单价 xff0c 显示物品的总价 xff08 61 重量 单价 xff09 累计计价 xff1a 第一次按下累计按键 xff0c 记住当前物品的总价
  • Verilog 四层电梯设计

    能跑就行系列 描述 xff1a 设计一个4层楼的电梯控制系统 xff0c 完成电梯向上或向下移动到被请求楼层 xff08 假设电梯每移动一层需要1秒 xff09 请求可来自每层楼的呼叫按钮 xff0c 也可来自电梯内的目的楼层选择 当电梯到
  • 北京科技大学 工科物理实验 大二上

    前言 本文由20级学生整理 xff0c 包括实验目的和仪器 实验原理 实验步骤三个部分 主要是想节约一下大家手机拍照扫描 语音输入或手打的时间 xff08 可能有些任课老师要求手写 xff0c 那就爱莫能助了 xff09 使用方法 点击 源
  • 北京科技大学 工科物理实验 大二下

    前言 本文由20级学生整理 xff0c 包括实验目的和仪器 实验原理 实验步骤三个部分 主要是想节约一下大家手机拍照扫描 语音输入或手打的时间 xff08 可能有些任课老师要求手写 xff0c 那就爱莫能助了 xff09 5 4 实验原理部
  • [操作系统]进程同步 Reader-Writer问题 共享缓冲区问题 面包师问题 吸烟者问题

    目录 1 Reader Writer问题 2 共享缓冲区问题 3 面包师问题 4 吸烟者问题 1 Reader Writer问题 多个Reader进程 xff0c 多个Writer进程 xff0c 共享文件F 允许多个Reader进程同时读
  • 北京科技大学 算法分析与设计 计蒜客

    北京科技大学 算法分析与设计 计蒜客平时作业及实验代码 2022年 xff08 仅供参考 xff09 目录 作业一 买房子 USACO Open08 农场周围的道路 国王的魔镜 作业二 蜗牛旅游 NOIP2001 求先序排列 作业三 二分查
  • [JavaScript] 优先队列

    JavaScript 实现优先队列 代码如下 xff1a class Heap constructor cmp 61 a b 61 gt a lt b this arr 61 new Array this cmp 61 a b 61 gt
  • BASH PS1 参数详解

    PS1 xff1a 提示符的设置 PS1 xff08 是数字1而不是字母l xff09 xff0c 每个版本bash的PS1变量内的特殊符号可能有些小的差异 xff0c 你可以先man bash 一下 下面是FC4环境下默认的特殊符号所代表
  • 个人面试经验分享

    九月 十月是收获的季节 xff0c 也是奔波的季节 我也不例外 xff0c 没有特殊的机遇 xff0c 也是经历了一次残酷的海选啊 xff0c 把我经历简单的分享给各位学弟学妹们 我数了一下大概面了六家公司 xff1a 阿里 xff0c 华
  • Row size too large (> 8126)的解决方法

    stackOverflow上的解决方法 首先进行第一步 如果是window系统的话就不是my cnf这个文件的了 xff08 linux才是这个问题 xff09 在window系统是在数据库的安装目录下找到 在后面加上 innodb fil
  • Error:java: 程序包org.apache.ibatis.annotations不存在

    今天配合前端小伙伴做的UI差不多了 xff0c 我也该完善我的后端代码了 xff1b 就在我是用Mybatis generator生成实体对象和mapper之后 xff0c 我启动项目 xff0c 报了一个这样的错误 xff1a Error
  • Mac配置Royal TSX

    破解版 xff1a 链接 https pan baidu com s 1jrX 0ZpXiXRTnYeeTtPzzw 密码 eyyy 一 Royal TSX 介绍 Royal TSX是一款功能非常强大适用于 Mac 的远程连接管理工具 兼容
  • 如何用firefox开发者工具查看元素

    一 浏览器自带工具查看元素 1 选中元素 xff0c 右击选择 Inspect Element 查看元素 2 选择更多 web developer Inspector选择查看器 xff0c 页面上移动鼠标 xff0c 选中元素高亮显示 二
  • Day 2 如何用Chrome开发者工具查看元素和如何获取默认xpath和CSS

    如何用Chrome开发者工具查看元素 方式一 打开更多工具 开发者工具 xff0c 调出开发者模式 xff08 窗口位置可选 xff09 xff0c 移动鼠标可高亮显示元素 方式二 高亮元素 xff0c 右击选中检查调出开发者工具 xff0
  • python字符串

    字符串 字符串格式使用方法更改字符串大小写字符串使用变量字符串使用空白符号strip方法删除字符串前后空白 字符串格式 python格式 xff1a 在python中 xff0c 用双引号或单引号括起来的就是字符串双引号中可以使用单引号 单
  • selenium(一)框架介绍及安装

    1 selenium框架详解 1 1 什么是selenium selenium是一个用于web应用程序测试的工具 xff0c 可以直接在浏览器中运行 xff0c 通过驱动浏览器代替人工完成兼容性测试和功能回归测试 xff0c 支持多浏览器
  • selenium(二)基本命令

    1 基本用法 1 1 初始化浏览器对象 span class token comment 导包 span span class token keyword from span selenium span class token keywor
  • 用c语言实现打印日历

    只要输入年份就能打印出相应的日历 span class hljs preprocessor ifndef MAIN H span span class hljs preprocessor define MAIN H span span cl