终端的输出结果如下:(这里用的是visual studio for Mac)

设计思路:

1.实现年历:调用12遍实现月历

2.实现月历:

--格式:

xx年xx月

日   一   二   三   四   五   六

--计算当月第一天的星期数,再与对应的星期数对齐(用 \t 实现)

--计算当月天数

--每逢周六换行

3.根据年月日,计算星期数

private static int GetWeekByDay(int year, int month, int day)
        {
            DateTime dt = new DateTime(year, month, day);
            return (int)dt.DayOfWeek;
        }
4.计算指定月份的天数

5.判断输入的年份是否闰年

--闰年:能被4整除但不能被100整除 或 能被400整除

代码实现:

using System;namespace Caledar
{class Program{//判断某年某月的第一天是星期几private static int GetWeekByDay(int year, int month, int day){DateTime dt = new DateTime(year, month, day);return (int)dt.DayOfWeek;}//判断某一年是否闰年,闰年:能被4整除但不能被100整除 或 能被400整除private static bool IsLeapYear(int year){/*方法一:if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)return true;elsereturn false;*///方法二:return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);}//获取每月有多少天private static int GetDaysByMonth(int year, int month){if(month < 1 && month > 12) return 0;switch (month){case 2:/*if (IsLeapYear(year))return 29;elsereturn 28;*/return IsLeapYear(year) ? 29 : 28;case 4:case 6:case 9:case 11:return 30;default:return 31;}}//打印月历//xx年xx月//日   一   二   三   四   五   六   private static void PrintMonthCalendar(int year, int month){Console.WriteLine("{0}年{1}月", year, month);Console.WriteLine("Sun\tMon\tTues\tWed\tThur\tFri\tSat");//Console.WriteLine("日\t一\t二\t三\t四\t五\t六");//某年某月的第一天是周几int week = GetWeekByDay(year, month, 1);//每月第一天之前添加空白,直至与对应但星期数量对齐for (int i = 0; i < week; i++)Console.Write("\t");int days = GetDaysByMonth(year, month);//确定好第一天在周几后,从第一天开始每隔一天添加一个空白for (int i = 1; i <= days; i++){//每天之间有个空白Console.Write(i + "\t");//每逢周六就换行if (GetWeekByDay(year, month, i) == 6)Console.WriteLine();}         }//调用月历12次private static void PrintYearCaledar(int year){for (int i = 1; i <= 12; i++){PrintMonthCalendar(year, i);Console.WriteLine();}}//主函数,输入年份,调用年历static void Main(){Console.WriteLine("请输入年份:");int year = int.Parse(Console.ReadLine());PrintYearCaledar(year) ;}}
}

ps:mac电脑的终端输出中英文混合的话可能会出现对不齐的情况,像这样

好像使用等宽字体可以解决,目前我没有找到其他简单快速的方法所以就偷懒用英文代替了

用c#实现年厉/月历/日历相关推荐

  1. C语言万年历 年历月历日历都要,c语言万年历

    7.1 软件工程实验报告软件工程实验报告 姓名 姓名 学号 学号 班级 班级 指导老师指导老师 2 第三章第三章 实验报告实验报告 Reports 实验题目 实验题目 实验目的实验目的通过实例使同学们 ...

  2. 移动端前端月历日历_前端基础:必须要知道的移动端适配(2)——分辨率

    分辨率 像素即一个小方块,它具有特定的位置和颜色. 图片.电子屏幕(手机.电脑)就是由无数个具有特定颜色和特定位置的小方块拼接而成. 像素可以作为图片或电子屏幕的最小组成单位. 下面我们使用sketc ...

  3. 屡获殊荣的桌面日历BusyCal for mac

    BusyCal for mac是一个屡获殊荣的桌面日历,结合个人的生产力功能,为家庭和工作组提供强大的日历共享功能.当你第一次启动BusyCal Mac版时,所有的iCal数据都会立即导入.BusyC ...

  4. c语言电子日历程序,c语言程序设计电子日历

    c语言程序设计电子日历 目 录 一.设计思路 二.功能实现详细设计 三.测试结果分析 四.用户手册 五.设计体会 一.设计思路: If语句: 判断该年是否为闰年,判断一年是否为闰年需要符合下面二者之一 ...

  5. 你平时都怎么记笔记?给好学的你安利10个最好用的记笔记神器!

    非常高产的卡里本里今天要给大家推荐十个最最最好用的记笔记 app / 网站 / 本子.记笔记是我们从小到大都一直在经历的事情,听课记笔记,看书做笔记,考试复习做笔记,准备面试做笔记,开会做笔记,讨论做 ...

  6. c语言课程下载模板,万年历C语言课程设计万年历

    万年历C语言课程设计万年历Tag内容描述: 1.摘 要本设计应用AT89C52芯片作为核心,采用C语言进行编程,实现以下功能:小时.分.秒.年.月.日.星期的显示和实时温度检测.该设计的电子时钟系统由 ...

  7. Error/Bug合集

    ========================================================================= From here to start: 鉴于内容可能 ...

  8. python生成日历_使用Python实现简易月历生成(2)

    生成日历主程序的函数结构和注释:#此功能用于在place处追加字体为f_name,字号为f_size,内容为content的细/粗体字 def convert_text(place, f_name, ...

  9. win10 悬浮日历_Win10日历隐藏功能:可直接打印空白月历

    Win10的日历大家都用过,但更多是用在日程管理上,其实它还有一项隐藏操作,可以直接打印空白月历.比方说做个排班表呀.写写工作安排神马的,简直方便得不要不要的.具体该怎么做呢?一起来看吧. 具体步骤如 ...

最新文章

  1. oauth password模式_史上最干的Oauth案例分析
  2. Ubuntu 16.04- Package has no installation candidate解决方式,Ubuntu正确安装openssl-server的方法...
  3. 【机器学习入门笔记13:BP神经网络逼近股票收盘价格】20190218
  4. 全球及中国航空材料行业发展动态及应用格局展望规划报告2021-2027年版
  5. JavaScript / Electron / ipcMain,ipcRenderer
  6. zzuli 2520: 大小接近的点对
  7. 从印度兵力分布聊聊Mybatis中#和$的区别
  8. python 并发执行命令_python: 多线程实现的两种方式及让多条命令并发执行
  9. 网络安全工作中最可怕的14种自己人
  10. 为什么我选择用 C 编写游戏?
  11. 微信公众号根据URL取文章详情 API 返回值说明
  12. python三国演义人物 统计分析前20个_python爬取三国演义文本,统计三国演义中出场次数前30的人物,并生成词云、图表...
  13. multiprocessing.Pool(pool.map pool.apply pool.apply_async poo.map_async)
  14. gcc:扩展功能:除标准里定义的C特性之外的功能;-pedantic
  15. I'm coming now.
  16. 基于c语言的学生档案管理系统设计实现
  17. 阿里云两分钟一键极速搭建个人网盘
  18. 怎样实现MindMapper中主题的自由移动
  19. 国外企业电子邮箱大全,国外用邮箱哪个好?怎么注册国外邮箱?
  20. 青春励志感悟人生语录

热门文章

  1. 【Linux云计算架构:第四阶段-Linux虚拟化-私有云-docker】第12章—— 搭建 Kubernetes 的 web 管理界面和基于 k8s 搭建+redis 集群案例
  2. iMindMap 10的两种分支主题满足你多种需求
  3. 【项目问题】Ionic开发移动端app,手把手教你如何打包生成apk
  4. web HTML js 飞机大战小游戏侧率
  5. Linux学习-修复win7下安装centos7双系统后,没有win7启动项
  6. [并行计算] 2. OpenMP简介
  7. GHub 安装失败解决办法
  8. 店宝宝:透视拼多多财报 “拼”时代意味着什么?
  9. 【112】生活新体验
  10. 区块链技术,能帮你买到心仪的房子吗?