import java.util.*;
import java.lang.Math; class Date1{
private int year;
private int month;
private int day;
Date1(){
year=1900;
month=1;
day=1;
}
Date1(int y,int m,int d){
this.year=y;
this.month=m;
this.day=d;
}
public int getYear(){
return year;
}
public int getMonth(){
return month;
}
public int getDay(){
return day;
}
public boolean equals(Date1 d2){    //判断两个日期是否相等
if(this.year==d2.year&&this.month==d2.month&&this.day==d2.day)
return true;
else
return false;
}
public long getTime(){          //计算从调用该方法的对象所表示的日期到历元的时间,单位是毫秒
Calendar c=Calendar.getInstance();    //Calendar类的对象的创建方式
c.set(getYear(), getMonth(),getDay());    //设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
return c.getTimeInMillis();          //计算时间,返回值是long型
} //上面的方法用Date类的getTime方法也可以做,但是没有把输入的时间接收的方法.故用Calendar类
public int compareTo(Date1 c2){      //计算天数差
long t1=this.getTime();          
long t2=c2.getTime();
return (int)(Math.abs(t1-t2)/3600/24/1000);  //所得到的时间差的绝对值除以1000换算为秒,除以3600换算为小时,除以24换算为天
}
}
public class Test3 {
public static void main(String args[]){
int y1=0,m1=0,d1=0,y2=0,m2=0,d2=0;
Scanner input=new Scanner(System.in);
System.out.println("请输入2个日期(eg:2013 04 17),年月日以空格分隔");
y1=input.nextInt();
m1=input.nextInt();
d1=input.nextInt();
y2=input.nextInt();
m2=input.nextInt();
d2=input.nextInt();          //两个日期分别的年月日
Date1 date1=new Date1(y1,m1,d1);   //题目要求输入年月日作为构造时的参数 
Date1 date2=new Date1(y2,m2,d2);
if(date1.equals(date2)){        //判断是否相等
System.out.println("两个日期相等");
}
else
System.out.println("两个日期不相等");
System.out.println("相差天数:"+date1.compareTo(date2));   //判断相差天数
}
}

自己设计一个日期类,可以输入年月日作为构造时的参数,如果不使用参数,则设定为1900年1月1日;编写一个方法equals判断两个日期是否相等;另一个方法compareTo可以进行日期之间的比较,返回两个日期之间相差的天数.的更多相关文章

  1. (3)润写一个程序(类),用户输入一段英文,然后输出这段英文中所有长度为3个字母的单词井且如果单词如果有连续 复了2次,只输出一个【例: This isis a desk,程序输出 his is a desk】,(提示,有re正则匹配来做)

    import re x = input('Please input a string:') pattern = re.compile(r'\b[a-zA-Z]{3}\b') print(pattern ...

  2. H面试程序(1)编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的 下一秒

    编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒. 如输入 2004 年 12 月 31 日 23 时 59 分 59 秒,则输出 2005年 1 月 1 日 0 时 0 分 0 秒. ...

  3. 定义一个Person类,其中包括:1.定义属性:姓名、年龄、民族作为成员变量。定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化。3.定义多个方法:分别显示相应的属性值,例如getName(){System.out.print("名称="+name+";"); }4.定义一个方法“成长”:实现年龄的增加,每执行一次年龄增加1

    题目显示不全,完整题目描述: (1)定义一个Person类,其中包括:1.定义属性:姓名:年龄:民族作为成员变量.定义静态成员变量:人数2.定义构造方法:对成员变量进行初始化.3.定义多个方法:分别显 ...

  4. 分别设计点类Point和圆类Circle,点类有两个私有数据纵坐标和横坐标;圆类有也两个私有数据圆心和半径,其中圆心是一个点类对象;要求如下所述: (1) 通过构造方法初始化数据成员,数据成员的初始化通过构造方法的参数传递;(2) 分别编写点和圆的输出函数,其中圆的输出包括圆心和半径的输出;点的输出x,y;

    题目相对简单: package naizi; public class Circle { //私有成员及构造方法 private Point center; private int r; Circle ...

  5. 通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用 矩形的左上角坐标来标识,包含: 添加两个属性:矩形左上角坐标startX和startY。 两个构造方法: 带4个参数的构造方法,用于对startX、startY、width和height属性 初始化; 不带参数的构造方法,将矩形初始化为左上角坐标、长和宽都为0 的矩形; 添加一个方法: 判断某个点是否在矩形内部的方法

    package b; public class Rect { Double width; Double height; public Double getWidth() { return width; ...

  6. 2018年1月12日--微信小程序----出错报告(40kb的原因)---并解决方法

    一. 报错的原因是因为,图片的文件太大了,已经超过了40kb...不能超过40kb. 在这里查看图片文件的大小:

  7. Java 基本日期类使用——格式化(二)

    Java日期格式化主要有以下几种方式:java.text.DateFormat以及其子类java.text.SimpleDateFormat; DateFormat 是日期/时间格式化子类的抽象类,它 ...

  8. OC - 时间日期类NSDate

    OC - 时间日期类NSDate //NSDate 时间日期类 NSDate 二进制数据流 { //1.获取当前时间 零时区的时间 //显示的是格林尼治的时间: 年-月-日 时:分:秒:+时区 NSD ...

  9. Java的日期类和日期格式化类

    日期类: Date date = new Date(); // 获取当前的系统时间 2 System.out.println("年份:"+ date.getYear()); Cal ...

随机推荐

  1. 01-Javascript简介(了解)

    [转]01-Javascript简介(了解) Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用 ...

  2. 2016计蒜之道复赛 百度地图的实时路况(Floyd 分治)

    题意 题目链接 Sol 首先一个结论:floyd算法的正确性与最外层\(k\)的顺序无关(只要保证是排列即可) 我大概想到一种证明方式就是把最短路树上的链拿出来,不论怎样枚举都会合并其中的两段,所以正 ...

  3. 看这一篇就够了,css选择器知识汇总

    对大多技术人员来说都比较熟悉CSS选择器,举一例子来说,假设给一个p标签增加一个类(class),可是执行后该class中的有些属性并没有起作用.通过Firebug查看,发现没有起作用的属性被覆盖了, ...

  4. Java java jdk在Linux下安装与环境变量的配置

    java jdk在Linux下安装与环境变量的配置 by:授客 QQ:1033553122 linux环境:CentOS-6.0-x86_64-bin-DVD1.iso [root@localhost ...

  5. JS截取字符串方法实例

    // JS截取字符串可使用 substring()或者slice() // // 函数:substring() // 定义:substring(start,end)表示从start到end之间的字符串 ...

  6. IE8不能保存cookie,造成response.redirect死循环的原因

    今天发现部分用户的IE8出现登录时死循环,操作系统是windows server 2008. 最后将登录地址:https://www.xxx/login.aspx加到本地intranet站点中,问题解 ...

  7. nginx www解析失败问题解决

    nginx www解析失败: nginx代理IIS下域名时 xxxx.xxx可以解析 但www.xxxx.xxx解析失败 IIS增加ip解析:配置下127.0.0.1就可以解析了.

  8. 判断exe是64位还是32位

    右击exe属性,查看兼容模式. 如果有windwos vista之前的版本则为32位的,如下图: 如果没有windwos vista之前的版本则为64位的,如下图:

  9. LeetCode题解之Longest Palindromic Substring

    1.题目描述 2.问题分析 计算每个字符所组成的字符串的回文子串. 3.代码 string longestPalindrome(string s) { ; ; bool is_odd = false ...

  10. JQUERY中find方法

    [jquery]find()方法和each()方法 find()方法 jquery选择器非常强大,利用css的命名规约,可以更快更方便的找出想要的元素. 比如: $("#id") ...