我有一个简单的函数,可以根据特定格式预测经过的秒数,例如,如果从特定日期开始计算,那么XXXX秒何时会完成。功能如下:

public static void secondsToNotify(long seconds, String D){
        Date Dt = Convert(D);
        Calendar Cal = Calendar.getInstance();
        Cal.setTime(Dt);
        secondsSpecial = secondsInterval*(1+(seconds/secondsInterval));
        Cal.add(Calendar.SECOND, (int) secondsSpecial);

        dateSecondsReg = Cal.getTime();
        System.out.println(""+dateSecondsReg);
        System.out.println(""+secondsSpecial);


    }


我称这个函数为:

public static void main(){
        secondsToNotify(2682810000, "1929-01-02");
    }


编译器在第一个参数为2682810000的函数调用中给我一条错误消息,该消息显示为:类型为int的文字2682810000超出范围。但是,作为一个论点,我接受了很长时间。我知道我在某个地方错了,但我不知道。

最佳答案

采用

secondsToNotify(2682810000l, "1929-01-02");


要么

secondsToNotify(2682810000L, "1929-01-02");


代替

secondsToNotify(2682810000, "1929-01-02");


EDit:最好使用L,因为有时l可能会引起与1的混淆

10-08 18:24