Java 比较使用整数创建的日期对象
我有一个学校的任务,我必须创建一个班级日期,以创建一个没有java.time.LocalDate类的日期,但包含日期、月份和年份的整数。然后,该日期将指定给类员工,并表示该员工开始在公司工作的日期。接下来,我必须创建另一个类,其中保存该公司的creationdate。在这个类中,我必须将date类中的创建日期与公司的创建日期进行比较。有人能帮我比较一下吗?这是我在课堂日期中的内容(没有复制toString、equals、hashcode和CompareToJava 比较使用整数创建的日期对象,java,Java,我有一个学校的任务,我必须创建一个班级日期,以创建一个没有java.time.LocalDate类的日期,但包含日期、月份和年份的整数。然后,该日期将指定给类员工,并表示该员工开始在公司工作的日期。接下来,我必须创建另一个类,其中保存该公司的creationdate。在这个类中,我必须将date类中的创建日期与公司的创建日期进行比较。有人能帮我比较一下吗?这是我在课堂日期中的内容(没有复制toString、equals、hashcode和CompareTo package be.vdab.uti
package be.vdab.util;
import java.io.Serializable;
public class Datum implements IDatum, Comparable<Datum>, Serializable {
private static final long serialVersionUID = 1L;
private int dag, maand, jaar;
public Datum(int dag, int maand, int jaar) throws DatumException {
this.dag = dag;
this.maand = maand;
this.jaar = jaar;
if (checkDatum(dag, maand, jaar)) {
}
else
throw new DatumException("Dit is geen geldige datum");
}
public int getDag() {
return dag;
}
public int getMaand() {
return maand;
}
public int getJaar() {
return jaar;
}
public boolean checkDatum(int dag, int maand, int jaar) {
if (jaar < 1583 || jaar > 4099 || maand < 1 || maand > 12 || dag < 1 || dag > 31) {
return false;
}
else
switch (maand) {
case 4 :
case 6 :
case 9 :
case 11 :
return (dag <= 30);
case 2 :
return (dag <= 29 && isSchrikkeljaar(jaar) || dag <= 28 && ! isSchrikkeljaar(jaar));
}
return true;
}
private boolean isSchrikkeljaar(int jaar) {
return (jaar % 4 == 0 && (!(jaar % 100 == 0) || jaar % 400 == 0));
}
包be.vdab.util;
导入java.io.Serializable;
公共类数据实现IDatam、可比较、可序列化{
私有静态最终长serialVersionUID=1L;
雅尔马朗达格私人酒店;
公共数据(int dag、int maand、int jaar)抛出DatumException{
this.dag=dag;
this.maand=maand;
this.jaar=jaar;
if(检查基准面(dag、maand、jaar)){
}
其他的
抛出新的数据异常(“Dit是geen geldige数据”);
}
公共int getDag(){
返回dag;
}
公共int getMaand(){
返回maand;
}
公共int getJaar(){
返回jaar;
}
公共布尔校验数据(int dag、int maand、int jaar){
如果(jaar<1583 | | jaar>4099 | | maand<1 | | maand>12 | | dag<1 | | dag>31){
返回false;
}
其他的
开关(maand){
案例4:
案例6:
案例9:
案例11:
return(可以添加方法compare()的dag)它将以日期作为参数并返回一个整数。在这种情况下,您可以比较日期并根据比较结果返回-ve值、+ve值或0。当您说compare时,是为了确定它们是否相等?是为了检查工作开始日期是否早于公司创建日期?还是其他?在compareTo
方法中(由可比接口指定),首先比较年份。如果年份不同,则返回差值。接下来,对月份执行类似操作。最后,返回dag
字段之间的差值,无论它们是否相等。如果您对减法的方式感到困惑,则总是this.someField-theOther.someField
(只有在需要反向顺序的情况下,才能使用相反的方法)。