**

7-2 定义日期类 (28 分)

**
定义一个类Date,包含三个私有属性年(year)、月(month)、日(day),均为整型数,其中:年份的合法取值范围为[1900,2000] ,月份合法取值范围为[1,12] ,日期合法取值范围为[1,31] 。 注意:不允许使用Java中和日期相关的类和方法,否则按0分处理。
要求:Date类结构如下图所示:

解题报告
必须实现类的封装性、否则本题不得分。

输入格式:

在一行内输入年月日的值,均为整型数,可以用一到多个空格或回车分隔。

输出格式:

当输入数据非法及输入日期不存在时,输出“Date Format is Wrong”;
当输入日期合法,输出下一天,格式如下:Next day is:年-月-日

输入样例1:

1912 12 25

输出样例1:

Next day is:1912-12-26

输入样例2:

2001 2 30

输出样例2:

Date Format is Wrong


import java.util.Scanner;
//Date类
class Date{static int year;static int month;static int day;int[] maxnum=new int[]{0,31,29,31,30,31,30,31,31,30,31,30,31};//创建年月日的构造方法public Date(int year,int month,int day){this.year=year;this.month=month;this.day=day;}public Date() {int year,month,day;}//getterpublic int getYear(){return year;}public int getMonth() {return month;}public int getDay() {return day;}//setterpublic void setYear(int year) {this.year = year;}public void setMonth(int month) {this.month = month;}public void setDay(int day) {this.day = day;}//判断year是否为闰年public static boolean isLeapYear(int year) {boolean isLeapYear;isLeapYear = ((year % 4 == 0 && year % 100 !=0 )||year % 400 == 0);return isLeapYear;}//判断输入日期是否合法public static boolean checkInputValidity(int year, int month, int day) {boolean checkInputValidity;int[] a=new int[]{0,31,29,31,30,31,30,31,31,30,31,30,31};if(!isLeapYear(year))a[2] = 28;checkInputValidity = (year>=1900&&year<=2000&&month>0&&month<=12&&day<=a[month]&&day>0);return checkInputValidity;}//得到下一天public static void getnextDate(int year,int month,int day) {int[] a=new int[]{0,31,29,31,30,31,30,31,31,30,31,30,31};int d=0,m=0;if(!isLeapYear(year))//如果不是闰年a[2] = 28;if(checkInputValidity(year,month,day)) {//如果输入的数字合法if(month==12) {//如果是12月if(day==a[month]) {//如果是12月的最后一天year = year+1;m = 1;d=1;}else{//如果不是12月的最后一天m=month;d =day +1;}}else {//如果不是12月if(day==a[month]) {//如果是该月的最后一天m = month + 1;d = 1;}else{//如果不是该月的最后一天m=month;d = day+1;}}System.out.println("Next day is:"+year+"-"+m+"-"+d);}else//如果输入的数字非法System.out.println("Date Format is Wrong");}
}
//主类
public class Main {//主函数public static void main(String[] args) {Scanner x=new Scanner(System.in);Date rq=new Date();rq.setYear(x.nextInt());//得到年份rq.setMonth(x.nextInt());//得到月份rq.setDay(x.nextInt());//得到天rq.getnextDate(rq.getYear(), rq.getMonth(),rq.getDay());}}

7-2 定义日期类 (28 分)相关推荐

  1. 定义日期类,根据输入的日期计算明天日期,上机实践--我的c++之路

    //这个程序有缺点,不能输入每个月最后一天.否则计算出错...可是不知道怎么才能解决,有日期数据类型就好了.以后学习过程中改进吧 #include<iostream.h> class cd ...

  2. 6-3 定义Person类

    6-3 定义Person类 (5分) 请定义Person类,包含两个属性,根据主方法中的调用形式,定义构造方法,输出方法. 对象的年龄在[0,150]之间,超出范围时,年龄为0. 类的定义: clas ...

  3. 类和对象实战 —— 日期类的实现

    文章目录 前言 定义日期类 1. 构造函数 2. 拷贝构造 3. 打印函数 4. 赋值运算符重载 5. 析构函数 6. 日期类的大小关系比较

  4. java设计一个立方体类box_实例1: 设计一个立方体类Box,定义三个属性,分别是长,宽,高。定义二个方法,分别计算并输出立方体的体积和表面积。_学小易找答案...

    [填空题]表达式 list(filter(lambda x:x>2, [0,1,2,3,0,0])) 的值为 _________ . [填空题]表达式 len(' 中国 '.encode('ut ...

  5. java定义一个日期类 包括年 月 日_【说明】 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期..._考试资料网...

    填空题[说明] 设计一个日期类Date包括年.月.日等私有数据成员.要求实现日期的基本运算,如某日期加上天数.某日期减去天数.两日期相差的天数等. 在Date类中设计如下重载运算符函数: Date o ...

  6. java定义一个日期类 包括年 月 日_定义一个日期类:包括年、月、日三个成员变量,显示日期的方法...

    /*定义一个日期类:包括年.月.日三个成员变量,显示日期的方法 * 提供构造方法:定义无参构造方法,和有参构造方法 */ 代码如下: public class Demo { public static ...

  7. java1.8日期类_JDK1.8-日期使用

    1. 概述 JDK1.8中对日期的改动是特别大的,基本上是引入了一套全新的API .因为由于原来老旧的日期API一直被人诟病,比如java.util.Date,java.util.Calendar等, ...

  8. 日期类的实现(C++)

    目录 注意: 1.作用域 2.实例化 3.this指针 4.std 1).std是什么? 2).为什么将cout放到名字空间std中? 3).std都是什么时候使用? 5.C语言"/&quo ...

  9. 王道论坛计算机考研机试指南怎么样,王道论坛计算机考研机试指南 二 日期类问题...

    二日期类问题 例2.3 日期差值 (九度教程第6题) 时间限制:1秒 **内存限制:32兆 ** 特殊判题:否 题目描述: 有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数 ...

最新文章

  1. ThinkPHP连接数据库
  2. php无线分类函数,php 无限级分类函数
  3. 打羽毛球如何提高手腕的爆发力
  4. boost::fusion::erase用法的测试程序
  5. 通信与计算机技术的联系,通信技术与计算机技术融合发展论文
  6. 《密码与安全新技术专题》第1周作业
  7. 长虹新一代人工智能电视Q6A、Q6K发布,搭载远场语音识别
  8. 密码学40年|重要历史与人物
  9. ELDD Chapter 2..3 Linux Kernel Facilities
  10. pic单片机c语言编程优势,PIC单片机与PIC单片机C语言编程简介
  11. 如何查看AT24C02设备地址
  12. java选取最大数字_用Java程序找最大的数字(4.1)
  13. 把ipa文件上传到App Store教程步骤
  14. [VMWare]vmx86版本不对
  15. Windows编程之Window介绍
  16. 火鸟门户系统 5.7 正式版
  17. Easy3D 孔洞识别
  18. intellij idea中快速抽取方法(代码优化)
  19. MySQL 大表性能优化
  20. tcpdump抓包工具离线安装和使用

热门文章

  1. 送给计算机老师的话,送给老师的话
  2. java oop入门_java入门(十六) | OOP(三)之构造方法
  3. Java基础---内部类详解
  4. 小程序种的轮播图高度的算法
  5. Fiddler如何查找登陆的可用cookie用于其他请求?方式一
  6. tar [-zxcvfpP]语法
  7. Ubuntu的奇技淫巧
  8. gdb+zbacktrace找到cpu过高php代码
  9. 高程 第7章函数表达式 7.1递归 7.2闭包
  10. Ubuntu12.04 下配置tomcat