1 importjava.util.Scanner;2

3 /**

4 *打印1900年之后的日历5 *@author:Archer-LCY6 *@date:2018年1月19日上午10:20:397 */

8 public classCalendal {9 //注意全局变量声明的位置

10 /**用户输入的年份*/

11 public static int year =Integer.MAX_VALUE;12 /**用户输入的月份*/

13 public static int month =Integer.MAX_VALUE;14 /**每月的天数*/

15 public static int [] dayofmonth= {31,28,31,30,31,30,31,31,30,31,30,31};16 public static voidmain(String[] args) {17

18 PrintCalendal();19 }20

21 public static voidPrintCalendal() {22 //TODO Auto-generated method stub23 //1、让用户输入年月份

24 InputYearandMonth();25 //2、计算1900-1-1到用户输入年份的天数26 //2-1计算各年的总天数27 //2-2计算各月的天数之和

28 int sum=GetsumdayofYear();29 sum+=GetsumdayofMonth();30 //计算每月的一号是星期几

31 int dayofweek=sum%7+1;32

33 //3、打印年月份(英文),打印月份的标题(星期一到星期日)

34 PrintMonthTitle();35 //4、根据某年某月一号星期几,打印月历功能

36 PrintCalendalContent(dayofweek);37 }38 /**

39 * 根据当月一号打印月历内容40 *@paramdayofweek 当月一号星期几41 */

42 private static void PrintCalendalContent(intdayofweek) {43 //TODO Auto-generated method stub

44 for(int i=0;i

52 }else

53 System.out.print("\t");54 }55 }56

57 /**

58 * 3、打印年月份(英文),打印月份的标题(星期一到星期日)59 */

60 private static voidPrintMonthTitle() {61 //TODO Auto-generated method stub

62 String[] monthofname= {"January","February","March","April","May","June","July","August","September","October","November","December"};63 System.out.println(year+"\t"+monthofname[month-1]);64 String[] weekdays= {"Mon","Tue","Wed","Thu","Fir","Sta","Sun"};65 for(int i=0;i< weekdays.length;i++) {66 System.out.print(weekdays[i]+"\t");67 }68 System.out.println();69 }70

71 /**

72 * 计算1900-year整年的总天数73 *@returnsum总天数74 */

75 private static intGetsumdayofYear() {76 //TODO Auto-generated method stub77 //判断是否输入年份

78 if(year==Integer.MAX_VALUE) {//用户没有输入,重新调用

79 System.out.println("输入错误请从新输入!");80 InputYearandMonth();81 }82 int sum=0;83 for(int i=1900;i

86 if(isLeapYear(i)) {87 sum++;//闰年多加一年

88 }89 }90 returnsum;91 }92

93 /**

94 * 判断是不是闰年95 *@paramyear 要判断的年份96 *@return是闰年返回true97 */

98 private static boolean isLeapYear(int year ) {//此处一定要加参数year,表示的是传入的参数值而不是全局变量中的year值

99 return year%400==0||year%4==0&&year%100!=0;//先算与再算或

100 }101

102 /**

103 * 计算月份天数104 *@returnsum返回year这一年月份的总天数105 */

106 private static intGetsumdayofMonth() {107 //TODO Auto-generated method stub

108

109 int sum=0;110 for(int i=0;i=3) {113 sum++;114 }115 }116 returnsum;117 }118

119 publicCalendal() {120 //TODO Auto-generated constructor stub

121 }122

123 /**

124 * 用户输入年份和月份125 */

126 private static voidInputYearandMonth() {127 //TODO Auto-generated method stub

128 Scanner input =newScanner(System.in);129 System.out.print("请输入年份:");130 //int year=input.nextInt();//局部变量

131 year=input.nextInt();132 System.out.print("请输入月份:");133 month =input.nextInt();134 //节省资源

135 input.close();136 input=null;137 }138 }

java 中怎么打印一个日历_日历打印用java实现相关推荐

  1. java中super(aa bb cc)_面向对象程序设计(Java)答案

    [单选题]下列哪个类声明是正确的( ) [单选题]Java中,在如下所示的Test类中,共有( )个构造方法. public class Test{ private int x; public Tes ...

  2. java中的de是什么_【转】java中main函数解析

    源地址:http://www.cnblogs.com/xwdreamer/archive/2012/04/09/2438845.html 从写java至今,写的最多的可能就是主函数 public st ...

  3. Java中未加入修饰符_(整理)java修饰符

    java的修饰符有: 权限修饰符:public.protected.default.private 修饰符:abstract.static.final public     使用对象:类.接口.变量. ...

  4. java中为按钮添加图片_我们可以在Java接口中为成员定义私有和受保护的修饰符吗?...

    java中为按钮添加图片 No, it is not possible to define private and protected modifiers for the members in int ...

  5. Java中如何导入DW当中_用Dreamweaver插入Java特效方法

    利用 Java 技术制作网页特效,可以使网页生动美观,然而, Java 命令并不是那么容易掌握的,很多读者看到编程语句就头晕.本实例将为读者介绍一个好东西 --Anfy Java ,有了它,可以不用编 ...

  6. java中如何改方法签名_我们可以在Java重写中更改方法签名吗?

    不,在覆盖超类的方法时,我们需要确保两个方法都具有相同的名称,相同的参数和相同的返回类型,否则它们将被视为不同的方法. 简而言之,如果我们更改签名,则尝试执行超类的方法时,将无法覆盖超类的方法. 原因 ...

  7. java中 byte 取值范围_【二进制基础-java中byte的取值范围-推导过程】

    java中用补码表示二进制数,补码的最高位是符号位,最高位为"0"表示正数,最高位为"1"表示负数. 正数补码为其本身: 负数补码为其绝对值各位取反加1: 例如 ...

  8. java中的与或非_与或非 · java development · 看云

    > 与或是运算操作,非是对二进制取反 ## 与操作(有0出0,全1出1) | 数字 | 二级制 | | --- | --- | | A | 1 0 1 0 | | B | 1 1 0 0 | | ...

  9. java 需要返回类型_在Java中,当一个方法不需要返回数据时返回类型必须是

    [问答题]在滑动轴承中什么是瓦背?其特点有哪些? [多选题]起重机采用变频调速改造后,有哪些效果? [判断题]当热继电器动作不准确时,可用弯折双金属片的方法来调整. [单选题]X62W型万能铣床进给电 ...

  10. Java中键盘输入一个数组的具体操作及说明

    在java中需要输入一个数组,再对输入的数组进行一些基本操作.这里给出了"(2)键盘输入一个数组:(2)计算数组和:(3)计算数组中的最大值 "的完整代码. import java ...

最新文章

  1. LeetCode简单题之数组的相对排序
  2. 2016年3月全球操作系统版本份额:Win10仅次win7
  3. 本科计算机论文摘要怎么写,★本科计算机论文摘要范文本科计算机论文摘要写...
  4. Android面试收集录 2D绘图与动画技术
  5. dae怎么用草图大师打开_当 to C市场饱和,该怎么用场景化打开新市场?
  6. 创建线程的三种方法_Netty源码分析系列之NioEventLoop的创建与启动
  7. PyTorch 靠谱的模型可视化教程
  8. python编游戏卡_python
  9. sid图像数据_【技术前沿】首届“水下机器人目标抓取大赛”第一名的图像增强方法...
  10. 基于STM32设计的掌上游戏机(运行NES游戏模拟器)详细开发过程
  11. mac系统调节鼠标、触控板灵敏度
  12. 微分中值定理 (罗尔、拉格朗日、柯西)
  13. 阿里云服务器上传下载速度测试(Speedtest带宽测试工具)
  14. 若梦博客-优质个人博客
  15. 仿鱼爪新媒交易账号过户转让平台源码担保第三方账号交易系统公众号服务号抖音快手小红书
  16. debian怎么安装oracle数据库,Debian上安装Oracle客户端
  17. Python如何进行中文注释
  18. 牛客练习赛43 回顾
  19. DataPipeline亮相“2021科技助力湾区数字金融发展峰会”,解锁“实时数据管理”密码
  20. 计算机如何取消用户账户控制面板,电脑控制面板里面的用户账户怎么取消密码?...

热门文章

  1. 太阳直射点纬度计算公式_高中地理——每日讲1题(太阳直射点、太阳高度角、影子方向)...
  2. 32 usb电路_【干货】快速创建基于热敏电阻的精确温度检测电路
  3. t检验、t分布、t值
  4. C语言中的volatile三种作用,volatile关键字在嵌入式C语言中的使用
  5. CUDA学习(十一) 利用npp做图像处理
  6. android gson json解析,Android GSON 解析 JSON
  7. Guice依赖注入(Scope)
  8. matlab gui界面的优点,关于Matlab GUI界面设计的一些了解
  9. 条件概率分布、联合概率分布和边缘概率分布
  10. 图说设计模式-结构型设计模式笔记