我有一个简单的函数,它可以根据特定的格式预测经过的秒数,比如从某个特定日期算起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超出范围。然而作为一个论点,我接受了很长时间。我知道我错了,但我无法知道。
答案 0 :(得分:1)
使用
secondsToNotify(2682810000l, "1929-01-02");
或
secondsToNotify(2682810000L, "1929-01-02");
而不是
secondsToNotify(2682810000, "1929-01-02");
编辑:最好使用L
,因为有些时候l
可能会导致1
混淆
答案 1 :(得分:1)