万年历

public class WanNianLi {public static void main(String[] args){//思路://1、构建Scanner扫描器类的对象Scanner input = new Scanner(System.in);//2、从控制台接收用户录入的年份、月份System.out.println("输入年");int year  = input.nextInt();System.out.println("输入月");int month  = input.nextInt();//3、获得1900年距离当前年份上一年的总天数int totalDays = getFromNowYearTo1900TotalDays(year);//4、获得当前年份所经过的天数int totalDaysThisYear = getNowYearPassedTotalDays(year,month);//5、求得给定月份第一天的星期数int week = (totalDays + totalDaysThisYear +1) % 7;//星期日是,week = 0//6、格式化输出日历formatCalendarOutput(week,year,month);}/***格式化输出日历*@param week:当前月份第一天的星期数*@param year:当前年份*@param month:当前月份*/public static void formatCalendarOutput(int week,int year,int month){int cnt = 0;//计数器,记录空白数和日期数的和//1) 打印表头System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");//2)打印空白(观察星期与之前空个数之间的规律)for(int i=1;i<= week;i++){System.out.print("\t\t");cnt++;}//3) 打印日历for(int i=1;i<=getNowMonthDays(year,month);i++){System.out.print(i+"\t\t");cnt++;//若记录空白数和日期数的和是七的倍数,应该换行输出if(cnt % 7 == 0){System.out.println();}}    }/***判断给定的年份是否为闰年*@param year:给定的年份*@return true:闰年;false:平年*/public static boolean isLeapYear(int year){return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);   }/***根据参数指定的年份,月份,求出当前月的总天数*@param year:年份*@param month:月份*@return 月的总天数*/public static int getNowMonthDays(int year,int month){//year:设计该参数的原因,2月份根据年份是否是闰年来确定其天数的switch(month){case 2:return isLeapYear(year) ? 29 : 28;case 4:case 6:case 9:case 11:return 30;default:return 31;}}/***获得当前年份的上一年距离1900年所经过的总天数*@param year 当前年份*@return 总天数*/public static int getFromNowYearTo1900TotalDays(int year){int totalDays = 0;for(int i = 1900; i< year; i++){//i:年份totalDays += isLeapYear(i) ? 366 : 365;}return totalDays;}/***求出当前年份经过的总天数(从当前年的1月1日到给定月份的上一个月最末一天)*@param year:年份*@param month:月份*@return 总天数*/public static int getNowYearPassedTotalDays(int year,int month){int totalDays = 0;for(int i=1;i< month;i++){//i:月份totalDays += getNowMonthDays(year,i);}return totalDays;}
}

转载希望标明出处,谢谢

java实现万年历——超简单!相关推荐

  1. 字符串正反连接java_字符串正反连接(Java实现,超简单)

    解题思路:先用java.io包里面的BufferedReader类来对InputStreamReader类进行包装,实现快速输入字符串以节约时间,然后用完后将输入流关闭.输入完了以后调用java.la ...

  2. java反编译超简单教程

    第一步:这里是代码编译完输出.class的路径,有自己想要反编译的程序可以跳过这一步  第二步:看好路径,将想要反编译的class文件,拖到src.....main...最后的项目文件夹中  完成:发 ...

  3. 超简单的配置java环境变量(绝对路径)

    超简单的配置java环境变量(绝对路径) 之前一开始学习java的时候糊里糊涂配好了环境变量,也是费了好大的牛劲,配了卸卸了重新配.前几天学妹让我给她看看环境变量,瞬间觉得环境变量真的很好懂,只要你搞 ...

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

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

  5. SVN远程改密码的超简单的java实现

    SVN远程改密码的超简单的java实现java源码下载地址 对于使用VisualSVNServer的免费使用者来说,为方便用户的使用,远程改密是十分必要滴.对于只会java开发的程序员来说,按照以下的 ...

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

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

  7. java最美验证码_java超简单,超级实用验证码

    java超简单,超级实用验证码 1.   验证码(2) dsnaValidateCode.jar dsnaValidateCode_src.rar ValidateCode.java 验证码生成类 J ...

  8. Java制作二级导航菜单_纯CSS实现超简单的二级下拉导航菜单代码

    本文实例讲述了纯CSS实现超简单的二级下拉导航菜单代码.分享给大家供大家参考.具体如下: 这是一款纯CSS菜单,二级下拉导航效果,是最简洁的CSS导航菜单,兼容性也很棒,IE7/8.火狐等都支持,而且 ...

  9. java jsp网页计算器_使用JSP制作一个超简单的网页计算器的实例分享

    实现一个简单的计算器程序,要求:使用jsp+javabean模式实现. 项目源代码如下: 文件:calculator.jsp 简单的计算机 进行计算 --%> cal.calculate(); ...

  10. 批处理 操作mysql_超简单使用批处理(batch)操作数据库

    超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...

最新文章

  1. 技本功丨请带上纸笔刷着看:解读MySQL执行计划的type列和extra列
  2. 外包公司派遣到网易,上班地点网易大厦,转正后工资8k-10k,13薪,包三餐,值得去吗?...
  3. 【效率】程序员救星,又一 VS Code 插件神器面世!
  4. 设计模式——模版方法
  5. 第五章项目 体检套餐管理系统
  6. Windows Socket 编程_ 简单的服务器/客户端程序
  7. 由炮灰模型到“微软钻石题”
  8. python日历模块_Python日历模块| setfirstweekday()方法与示例
  9. python是什么?python该怎么学?一招告诉你!!
  10. 安装svn显示目标计算机积极拒绝_【SVN】Error running context: 由于目标计算机积极拒绝,无法连接...
  11. 【Elasticsearch】推荐一个同步Mysql数据到Elasticsearch的工具
  12. 通过案例学调优之--和 LOG BUFFER 相关的主要 Latch
  13. 092:QuerySet API详解-切片操作
  14. unity, 欧拉角(euler angle)
  15. spnc币吧_CCIEC币-目前是CPUsolo独自开采。CPU服务器独自开采钱包上挖新币教程!...
  16. License授权方案
  17. JAVA SE 13快速安装
  18. CSDN每日一练:蛇形矩阵
  19. JavaScript异步编程(1)- ECMAScript 6的Promise对象
  20. DDGDataCache OC文件缓存,代码简单,功能强大

热门文章

  1. java poi excel模板变量_Java Web之POI操作Excel2016模板
  2. 雾霾的结构化责任主体
  3. 基于SPringBoot的药品管理系统
  4. 用360安全卫士批量本地快速给系统打补丁【转贴】
  5. 骑士资本高频交易系统事故案例分析
  6. 炫酷大屏demo_周末大放送 16几个炫酷的HTML5动画锦集
  7. Linux安装和卸载MySQL数据库
  8. JAVA项目开发之文档篇
  9. 一文看懂NXP汽车电机控制解决方案(NXP整理)
  10. 浏览器原理学习笔记1-浏览器进程