我有一个简单的函数,可以根据特定格式预测经过的秒数,例如,如果从特定日期开始计算,那么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
的混淆