目的:编写方法版的万年历主要是为了熟悉方法的使用,在前面用存分支循环上的一次简单改进。

可参考:Java实现万年历【初级】_Vengo€bs的博客-CSDN博客

代码部分:

import java.util.Scanner;
public class Test08{/**知识点:方法版本的万年历*/public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("请输入年:");int year = scan.nextInt();//2022System.out.println("请输入月:");int month = scan.nextInt();//3//计算1900年~输入年的总天数int allDayOfYear = getAllDayOfYear(1900,year);//计算1月~输入月的总天数int allDayOfMonth = getAllDayOfMonth(year,1,month);//计算总天数int allDay = allDayOfYear + allDayOfMonth + 1;//计算星期int week = getWeek(allDay);//计算当月的天数int day = getDay(year,month);//打印日历printCalendar(year,month,day,week);}//计算年的总天数public static int getAllDayOfYear(int startYear,int endYear){int allDayOfYear = 0;for(int i = startYear;i<endYear;i++){if(isLeapYear(i)){allDayOfYear += 366;}else{allDayOfYear += 365;}}return allDayOfYear;}//计算月的总天数public static int getAllDayOfMonth(int year,int startMonth,int endMonth){int allDayOfMonth = 0;for(int i = startMonth;i<endMonth;i++){allDayOfMonth += getDay(year,i);}return allDayOfMonth;}//计算当月天数public static int getDay(int year,int month){int day = 0;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:day = 31;break;case 4:case 6:case 9:case 11:day = 30;break;case 2:if(isLeapYear(year)){//闰年day = 29;}else{//平年day = 28;}break;}return day;}//判断闰年public static boolean isLeapYear(int year){if(year%4==0 && year%100!=0 || year%400==0){return true;}return false;}//计算星期public static int getWeek(int allDay){int week = allDay%7;if(week == 0){week = 7;}return week;}//打印日历public static void printCalendar(int year,int month,int day,int week){System.out.println(" ---" + year + "年" + month + "月--- ");System.out.println("一\t二\t三\t四\t五\t六\t日");//打印日期前的空格int num = 0;//记录是否换行for(int i = 1;i<week;i++){System.out.print("\t");num++;}//打印日期的空格for(int i = 1;i<=day;i++){num++;System.out.print(i + "\t");if(num%7 == 0){System.out.println();}}}
}

运行结果:

与实际相符

Java实现万年历【升级版】相关推荐

  1. java打印输出万年历_用Java编程输出万年历的功能实现

    1.功能实现 输入1查看上个月日历 输入2查看下个月日历 输入3查看去年本月日历 输入4查看明年本月日历 输入5查看指定月份日历 2.代码所导入的包 import java.text.ParseExc ...

  2. java设计万年历_java实现万年历

    package 类的部分总结; import java.text.DateFormat; //这是一些列方法所需要的包 import java.text.ParseException; import ...

  3. java 简单万年历_java简单万年历

    Java万年历源代码_幼儿读物_幼儿教育_教育专区.. import java.awt.*; import java.awt.event.*; import javax.swing.*; import ...

  4. java打印输出万年历_Java基础之打印万年历的简单实现(案例)

    Java基础之打印万年历的简单实现(案例) 问题:输入年,月,打印对应年月的日历. 示例: 问题分析: 1,首先1970年是Unix系统诞生的时间,1970年成为Unix的元年,1970年1月1号是星 ...

  5. java万年历课程设计代码,JAVA《万年历系统》课程设计

    JAVA<万年历系统>课程设计 面向对象程序设计面向对象程序设计 课程设计报告课程设计报告 题目题目 万年历系统万年历系统 专业专业 计算机科学与技术计算机科学与技术 班级班级 姓名姓名 ...

  6. java万能万年历的程序,java 实现万年历

    以前初学java写万年历,都是采用基本的算法求出是否闰年闰月 计算公式如下 int year = 2014, month = 8, total = 0; if (month == 1 || month ...

  7. JAVA线程万年历(阳历+阴历+节日+时间)

    JAVA线程万年历(阳历+阴历+节日+时间) package myCalendar;import java.awt.Canvas; import java.awt.Color; import java ...

  8. 二、Java之万年历

    文章目录 二.Java之万年历 2.1 要求 2.2 思路 2.3 源代码 2.4 结果截图 二.Java之万年历 2.1 要求 输入年份: 输入月份: 输出某年某月的日历. 2.2 思路 实现从控制 ...

  9. Java实现万年历/日历

    Java实现万年历/日历 问题:输入年份和月份,显示本月的日历(本日历是从1900年开始) 核心:1900年1月1日是星期一(计算到要显示的年月的总天数 --> (总天数+1)%7 --> ...

  10. 用java实现万年历

    用java实现万年历 具体程序如下: import java.util.*; class almanac { public static void main(String[] args) {int y ...

最新文章

  1. 项目服务路由保存不成功_汽车延保服务有哪些项目?不了解的小伙伴快看过来...
  2. [Java网络编程]UDP通信程序练习
  3. NetBeans Java EE技巧9:从数据库创建JSF应用程序
  4. [教程]博客园插入视频教程
  5. rsync 服务器文件同步备份
  6. mysql innodb_data_file_path_MySQL修改innodb_data_file_path参数的一些注意事项
  7. 海外精致办公名片展示样机|智能贴图 Mockup名片模板
  8. 机器人技术之Simulink仿真基础
  9. 学习笔记(13):MATLAB基础入门课程-kron函数
  10. 微软将与美国第二大杂货连锁店展开合作 以抵抗亚马逊
  11. 四大基本反应类型的关系_中学化学中的四种基本反应类型,氧化还原反应和物质的变化!...
  12. Android TV 认证简介
  13. 基于VUE使用Hbuilder工具开发的思维导图工具
  14. 预处理工艺采用水处理过滤器的作用说明
  15. docekr unable to delete d38d835588d5 (must be forced) - image is referenced in multiple repositories
  16. 状态机(FSM)的分类描述
  17. 大容量U盘制作USB多重系统启动盘初探
  18. Django! 褪去浮华
  19. ul,ol,dl区别
  20. 面试时应该采取什么方法才能克服紧张的情绪?

热门文章

  1. 智慧校园整体解决方案
  2. 【计算机网络】【硬件】交换机芯片介绍
  3. Kettle使用教程(问题)
  4. 2016年读书总结(一)
  5. 小米4c android5.1,小米4c原版官方刷机包安卓5.1.1rom线刷包
  6. C语言程序100例之C#版-008
  7. 《Adobe Flash CS4中文版经典教程》——1 FLASH CS4快速入门1.1 启动Flash并打开文件...
  8. matlab调和均值滤波_matlab-均值滤波
  9. JavaScript 技术篇 - js读取Excel文档里的内容实例演示,js如何读取excel指定单元格的内容,js将excel的内容转化为json字符串方法
  10. 【IT项目管理】第8章 习题