Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 比较使用整数创建的日期对象_Java - Fatal编程技术网

Java 比较使用整数创建的日期对象

Java 比较使用整数创建的日期对象,java,Java,我有一个学校的任务,我必须创建一个班级日期,以创建一个没有java.time.LocalDate类的日期,但包含日期、月份和年份的整数。然后,该日期将指定给类员工,并表示该员工开始在公司工作的日期。接下来,我必须创建另一个类,其中保存该公司的creationdate。在这个类中,我必须将date类中的创建日期与公司的创建日期进行比较。有人能帮我比较一下吗?这是我在课堂日期中的内容(没有复制toString、equals、hashcode和CompareTo package be.vdab.uti

我有一个学校的任务,我必须创建一个班级日期,以创建一个没有java.time.LocalDate类的日期,但包含日期、月份和年份的整数。然后,该日期将指定给类员工,并表示该员工开始在公司工作的日期。接下来,我必须创建另一个类,其中保存该公司的creationdate。在这个类中,我必须将date类中的创建日期与公司的创建日期进行比较。有人能帮我比较一下吗?这是我在课堂日期中的内容(没有复制toString、equals、hashcode和CompareTo

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
(只有在需要反向顺序的情况下,才能使用相反的方法)。