这是我个人对这个题目理解,可能有些杂乱,仅供参考。

题目:

编写程序,提示用户输入年份和代表该年第一天是星期几的数字,然后在控制台上显示该年的日历表。

控制台显示结果如下:(我用_代表空格)

图1:以2018年为例

首先,说一下我认为在做这道题之前需要想到的几个要点:

1,首先,要判断输入的年份是平年还是闰年,判断闰年的条件是能被4整除且不能被100整除,或能 被400整除

这里,我写了一个单独的函数用来表示

图2:判断是否为闰年

2,第二,判断完平年还是闰年之后,还需要得出每月的天数,需要注意,2月的天数和平年闰年有关系

这里我使用的是switch语句,也可以使用循环等获取天数,2月的天数调用了前面判断是否为闰年的方法

图3:判断每个月的天数

3,最后,在知道每个月的天数后,需要知道这个月的第一天从星期几开始,这时就需要获取每个月开始的星期数:(上个月的天数%7+上个月第一天的星期数)%7

这里第一个月的星期数是由用户手动输入获取的,所以,第一个月的星期数,就是他本身,第二个月的星期数是前面一个月,也就是第一个月的星期数,用递归调用比较方便

图4:获取每个月第一天是星期几

当我写到这里的时候,我还没考虑7天换行的问题,就只是看能不能在正确的位置输出每个月的一号,于是开始写main函数

此处,kl为我的类名,(注:类名首字母要大写,不要像我一样小写),_代替空格

图5:main函数内部实现

通过运行后,得出下图所示的结果:

图6:没写换行的运行结果

说实话,看到这个结果,着实吓了一跳,随即,我就发现,我没写换行,但是每个月的第一天所在星期数是正确的,还是窃喜了一小下

接下来就开始换行的操作

换行的话,就是每到周六就换行,Sun对应的值是0,Sat对应的是6,也就是说,要判断当days为6时换行,就是判断days为星期几,我的思路是,当天的日期加上这个月开始的星期数余7就是当前日期的星期数,但是要注意,这个月开始的星期数是从0开始的,所以,总的来说:

当前日期的星期数= (当前日期+这个月开始的星期数-1)%7

图7:判断当前天数是星期几

判断完当前天数之后,就要在main函数里使用了,使用要

判断当前天数是否为周6,进行换行:

将以下语句放在图5的红线出即可,在if条件里调用dWeak函数

图8:判断是否为周六

这样就可以了,运行结果后,就会出现图1的样式

以上,是我在写完之后的一些理解,如果有更好的方式欢迎告知(^w^)

最后,用一张图片结束吧

java 显示日历_JAVA显示日历(已知年和该年第一天为星期几)相关推荐

  1. java实现手机日历_Java实现日历

    主要功能:提示用户输入年份以及月份,打印出其月份的月历. 函数实现:由已知1900年1月1日为星期一,将这天与所求的月份之间的天数求出来,模7,得到所求月份的第一天为星期几.其次,对月份的天数实现,则 ...

  2. java程序设计 日历_JAVA程序设计(日历记事本)

    JAVA程序设计(日历记事本) import java.util.Calendar; import javax.swing.*; import java.awt.*; import java.awt. ...

  3. 算法分析:芯片测试问题 非递归 JAVA 有n片芯片,已知好芯片比坏芯片至少多1片......

    [芯片测试]有n片芯片,已知好芯片比坏芯片至少多1片.现在需要通过测试从中找出1片好芯片,测试方法如下:将2片芯片放到测试台上,2片芯片互相测试并报告测试结果(即好或者坏):其中,好芯片的报告是正确的 ...

  4. java icon显示图片_java显示ico格式图片

    展开全部 不知道你是不是要这种效果 代码如下: //要求:在JFrame里面显示一个ico格式的图片,放在JPanel,JLable,或32313133353236313431303231363533 ...

  5. java 显示中文_java显示中文乱码的解决方法

    java显示中文乱码的解决方法 发布时间:2020-06-16 11:08:43 来源:亿速云 阅读:97 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java显示中文乱码的解决方法,代码非常 ...

  6. java中输出日历_Java输出日历写法

    package TestString_2; import java.text.ParseException; import java.util.Calendar; import java.util.G ...

  7. java显示图片_java显示图片的方法

    java显示图片的方法 applet能显示GIF,JPEG,BMP等其他格式的图片.为了在applet中显示图片,你需要使用java.awt.Graphics类的drawImage()方法.以下是小编 ...

  8. java显示图片_Java 显示图片的方法

    下面是两种显示图片的简单方法: package org.bruce.vertices.asist.experiments; import java.awt.BorderLayout; import j ...

  9. java 异常提示_Java显示异常信息与异常分类

    运行上述代码,输出结果如下下图所示: 使用printStackTrace方法可以获取异常的具体类型,这样就可以在使用throw是抛出一个确切的异常. 2. 异常的分类 从编程角度考虑,可以将异常分为以 ...

最新文章

  1. Ubuntu:安装deb文件包
  2. 服务器中同一个【ip:port】可以多次accept的问题
  3. 【转】光栅化操作阶段
  4. 几种比较好看的滚动条样式及代码
  5. phpcmsV9 QQ登录问题分析 - 踩坑篇
  6. 曲线相似度衡量——曲线距离计算Fréchet distance详解与python计算
  7. 生产是什么意思_俗话说:“牛遇无春年,出力好耕田”是啥意思?有什么道理?...
  8. vue使用ajax库,Vue 中使用Ajax请求
  9. 1.4 案例:广告预测、房价预测
  10. 原 SpringFramework核心技术五:Spring AOP API
  11. 高德地图No implementation found for long com.autonavi.amap.mapcore.MapCore
  12. Maven 引入 ojdbc:ojdbc14-10.2.0.4.0.jar
  13. matlab d函数,matlab常用函数大集合
  14. Symbol 类型 的简单理解和应用
  15. anaconda conda 切换为国内源
  16. Java 七参数计算
  17. Python爬虫——selenium模拟京东网站登录(一)
  18. Gradle sync failed: Sync failed: reason unknown
  19. 工业机器人 郝卫东_智能保安巡逻机器人论文
  20. 《Linux驱动:Nor flash驱动看这一篇就够了》

热门文章

  1. 如何制定好的方案之三:实施策略是关键
  2. Apache Maven 2 简介
  3. Hibernate中的数据库方言(Dialect)
  4. HDU 5727 Necklace
  5. 7.2.3 使用RenderTargetBitmap类生成图片
  6. 树形控件Tree Control
  7. Qt-QTableWidget设置只能选中一行
  8. VISUAL STUDIO 2019 快捷键
  9. 用蛾子触角当天线,用气味导航!美国博士发明奇特生物技术无人机
  10. 人工智能技术为大脑制作地图 前沿