java万年历的实现
问题
在控制台输入一个年份和月份,在控制台输出这个月的日历。
基本思路
先计算某年某月的第一天距离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万年历的实现相关推荐
- java万年历的设计总结_java万年历设计报告
内容来自用户:Van2830 JAVA大作业 目录 作业要求2项目概述2具体功能介绍3设计与实现3作业要求:62616964757a686964616fe59b9ee7ad94313334336464 ...
- java 万年历_非常实用的java万年历制作方法
完成万年历的制作需要用到数组.循环等知识. 编程计算输入的月份距离1900年1月1日的天数,求出当前月之前的总天数(不包含当前输入月分的天数,) 编程计算输入月份的第一天是星期几,(公式:星期几=1+ ...
- java万年历方法_利用java制作万年历
本文分享了制作万年历的方法,如果文中有不正确的地方,欢迎大家批评指正. (推荐教程:java课程) 代码实现:package com.softeem.test01; import java.time. ...
- java万年历解析,java万年历
主类: import java.awt.*; public class 万年历 { public static void main(String[] args) { window p=new wind ...
- java 万年历接口_接口详细介绍-万年历查询
/** *点睛数据:万年历查询,使用JAVA方式调用接口简单示例 * @author 点睛数据 * djapi.cn */ import java.io.BufferedReader; import ...
- java万年历设计报告_JAVA《万年历系统》课程设计报告附源码.doc
JAVA<万年历系统>课程设计报告附源码 学号<> 课程设计报告 万年历系统专业:计算机科学与技术班级:姓名:学号:指导教师:成绩: 计算机与信息工程系 2014年6月6日目录 ...
- java万年历课程设计代码,JAVA《万年历系统》课程设计
JAVA<万年历系统>课程设计 面向对象程序设计面向对象程序设计 课程设计报告课程设计报告 题目题目 万年历系统万年历系统 专业专业 计算机科学与技术计算机科学与技术 班级班级 姓名姓名 ...
- java万年历开题报告_基于java平台的多历法万年历软件#(开题报告+论文+源代码)...
基于java平台的多历法万年历软件#(开题报告+论文+源代码) 如有需要请联系 QQ:1294122080 摘要 1.论文题目:基于java的多历法万年历软件 2. 专 业:计算机科学与技术 3.指导 ...
- Java 万年历、周六日计算、节假日导出
目录 (1)通过 Java 的基本语法来实现万年历 (2)Java 获取一年中所有的周六和周日 (3)Java 节假日导入导出 (1)通过 Java 的基本语法来实现万年历 在 Java 的时间计算方 ...
- java 简单万年历,java万年历简单实例
本文实例讲述了JAVA实现的简单万年历. 实现思路具体如下: 已知1900年1月1日星期一判断是否闰年 指定年月返回当月的天数 返回一年的总天数 返回距离1900年1月到指定年月的上一个月的总天数 实 ...
最新文章
- Impala使用笔记(一)
- ubuntu下磁道坏区的检测与修复
- 澳优、伊利、君乐宝、贝因美等入局,羊奶能否迎来“牛市”?
- Android应用程序请求SurfaceFlinger服务创建Surface的过程分析
- 如何将Chrome本地安装的扩展应用导出到本地
- uva 1617——Laptop
- 数据图表可视化_数据可视化如何选择正确的图表第1部分
- xpath 取标签下所有文字内容_对Xpath 获取子标签下所有文本的方法详解
- (二)线程--通过委托异步调用方法
- 2003系统中证书服务
- 心电图分析软件_心电图、心脏彩超、心脏冠脉造影、无创冠脉磁共振的区别及用途...
- iweboffice之word——功能简介
- windows 下杀手tomcat 进程
- 第十二章 国民收入的决定:AD-AS模型
- 如何将瀚高数据库单机数据导入HGDW
- PHP学习笔记——图形图像
- 怎样黑进Microsoft:循序渐进指南 (转)
- PMP备考图表汇总详解
- 网站选择关键词需要遵循哪些原则呢?
- Ubuntu系统安装LAMP应用Discuz 建设论坛网站