问题

在控制台输入一个年份和月份,在控制台输出这个月的日历。

基本思路

先计算某年某月的第一天距离1900.1.1的天数。然后用天数%7,就可以得到这一天是星期几。然后对这个月进行遍历存储在二维数组中。

日期类

package day06;public class Date {private int year;private int month;public Date(int year,int month) {this.year = year;this.month = month;}public Date() {}public int setYear(int yesr  ) {return this.year = yesr;}public int setMonth(int month) {return this.month = month;}
//  计算xx年xx月距离1900.1.1有多少天public int  getDays() {int days = 0;for(int i = 1900; i<year;i++) {if(i%4==0&&i%100!=0||i%400==0) {days = days +366;}else {days = days +365;}}for(int i = 1;i<month;i++) {days = days +this.getMonthDays(i);}return days+1;}
//  计算月份的天数public int getMonthDays(int month) {int monthDays = 0;if(month==2) {if(year%4==0&&year%100!=0||year%400==0) {monthDays = monthDays+29;}else {monthDays = monthDays+28;}}else if(month==4||month==6||month==9||month==11) {monthDays = monthDays+30;}else {monthDays = monthDays+31;}return monthDays;}
//  将某月的日历放在二维数组中public String[][] getRiLi() {String[][] riLi = new String[7][7];Integer m = 1;riLi[0][0] = "\t日"; riLi[0][1]= "\t一";   riLi[0][2] = "\t二";riLi[0][3] = "\t三";    riLi[0][4] = "\t四";  riLi[0][5] = "\t五";riLi[0][6] = "\t六";for(int j= 0;j<this.getDays()%7;j++) {riLi[1][j] = "\t";}for(int j= this.getDays()%7;j<7;j++) {riLi[1][j] ="\t"+m.toString();m++;}for(int i = 2; i<7;i++) {for(int j = 0;j<7;j++,m++) {if(m>this.getMonthDays(month)) {riLi[i][j] ="\t";}else {riLi[i][j] ="\t"+m.toString();}}}return riLi;}}

用户进行交互的控制台代码

package day06;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Work1 {//  判断字符串是否为数字private static boolean isNumeric(String str) {// TODO Auto-generated method stubboolean flag = false;for(int i =0 ; i<str.length();i++) {char ch = str.charAt(i);if (ch == '0' || ch == '1' || ch == '2' || ch == '3' || ch == '4' || ch == '5' || ch == '6' || ch == '7'|| ch == '8' || ch == '9') {flag = true;} else {flag = false;break;}}return flag;}public static void main(String[] args) {Date d1 = new Date();BufferedReader in = new BufferedReader(new InputStreamReader(System.in));while (true) {System.out.println("请输入要查询的年份月份或者输入退出结束程序。");String str = null;try {str = in.readLine();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}String[] s = str.split(" ");if (isNumeric(str)) {Integer year = Integer.parseInt(s[0]);Integer month = Integer.parseInt(s[1]);if ((year > 1900) && (month >= 1 && month <= 12)) {d1.setYear(year);d1.setMonth(month);String[][] rili = d1.getRiLi();for (String[] k : rili) {for (String v : k) {System.out.print(v);}System.out.println();}} else {System.out.print("输入错误");}} else if (str.equals("退出")) {System.out.println("程序结束");break;} else {System.out.println("输入错误");}}}}

java万年历的实现相关推荐

  1. java万年历的设计总结_java万年历设计报告

    内容来自用户:Van2830 JAVA大作业 目录 作业要求2项目概述2具体功能介绍3设计与实现3作业要求:62616964757a686964616fe59b9ee7ad94313334336464 ...

  2. java 万年历_非常实用的java万年历制作方法

    完成万年历的制作需要用到数组.循环等知识. 编程计算输入的月份距离1900年1月1日的天数,求出当前月之前的总天数(不包含当前输入月分的天数,) 编程计算输入月份的第一天是星期几,(公式:星期几=1+ ...

  3. java万年历方法_利用java制作万年历

    本文分享了制作万年历的方法,如果文中有不正确的地方,欢迎大家批评指正. (推荐教程:java课程) 代码实现:package com.softeem.test01; import java.time. ...

  4. java万年历解析,java万年历

    主类: import java.awt.*; public class 万年历 { public static void main(String[] args) { window p=new wind ...

  5. java 万年历接口_接口详细介绍-万年历查询

    /** *点睛数据:万年历查询,使用JAVA方式调用接口简单示例 * @author 点睛数据 * djapi.cn */ import java.io.BufferedReader; import ...

  6. java万年历设计报告_JAVA《万年历系统》课程设计报告附源码.doc

    JAVA<万年历系统>课程设计报告附源码 学号<> 课程设计报告 万年历系统专业:计算机科学与技术班级:姓名:学号:指导教师:成绩: 计算机与信息工程系 2014年6月6日目录 ...

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

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

  8. java万年历开题报告_基于java平台的多历法万年历软件#(开题报告+论文+源代码)...

    基于java平台的多历法万年历软件#(开题报告+论文+源代码) 如有需要请联系 QQ:1294122080 摘要 1.论文题目:基于java的多历法万年历软件 2. 专 业:计算机科学与技术 3.指导 ...

  9. Java 万年历、周六日计算、节假日导出

    目录 (1)通过 Java 的基本语法来实现万年历 (2)Java 获取一年中所有的周六和周日 (3)Java 节假日导入导出 (1)通过 Java 的基本语法来实现万年历 在 Java 的时间计算方 ...

  10. java 简单万年历,java万年历简单实例

    本文实例讲述了JAVA实现的简单万年历. 实现思路具体如下: 已知1900年1月1日星期一判断是否闰年 指定年月返回当月的天数 返回一年的总天数 返回距离1900年1月到指定年月的上一个月的总天数 实 ...

最新文章

  1. Impala使用笔记(一)
  2. ubuntu下磁道坏区的检测与修复
  3. 澳优、伊利、君乐宝、贝因美等入局,羊奶能否迎来“牛市”?
  4. Android应用程序请求SurfaceFlinger服务创建Surface的过程分析
  5. 如何将Chrome本地安装的扩展应用导出到本地
  6. uva 1617——Laptop
  7. 数据图表可视化_数据可视化如何选择正确的图表第1部分
  8. xpath 取标签下所有文字内容_对Xpath 获取子标签下所有文本的方法详解
  9. (二)线程--通过委托异步调用方法
  10. 2003系统中证书服务
  11. 心电图分析软件_心电图、心脏彩超、心脏冠脉造影、无创冠脉磁共振的区别及用途...
  12. iweboffice之word——功能简介
  13. windows 下杀手tomcat 进程
  14. 第十二章 国民收入的决定:AD-AS模型
  15. 如何将瀚高数据库单机数据导入HGDW
  16. PHP学习笔记——图形图像
  17. 怎样黑进Microsoft:循序渐进指南 (转)
  18. PMP备考图表汇总详解
  19. 网站选择关键词需要遵循哪些原则呢?
  20. Ubuntu系统安装LAMP应用Discuz 建设论坛网站

热门文章

  1. LVS和Keeplive
  2. 智能公交监控调度系统技术方案,等车不再等到心碎
  3. 最好的免费在线UML图表工具
  4. 【Transformers】第 1 章:从Bag-of-Words到Transformer
  5. hive sql 正则表达式
  6. cdh安装hadoop组件后一些常用设置
  7. SVN:SVN分支管理
  8. centos7 中彻底卸载mysql
  9. 交易记录表设计注意点
  10. 计算机毕业设计springboot+vue+elementUI高校学生实习管理管理系统