Java 爪哇语;“整数太大”;在日期添加计算中
我已经取出了与我的问题无关的代码,并留下了与我的问题相关的代码。这表示整数太大。我已将当前时间转换为毫秒,我正在尝试以毫秒为单位添加一个月、两周和一周,以实现“过期日期”。如果有人知道我将如何使用Long而不是int?我很困惑,因为我的日期没有被声明为整数 它在“dateExpired=dateExpired+2628000000;”处声明错误Java 爪哇语;“整数太大”;在日期添加计算中,java,date,integer,Java,Date,Integer,我已经取出了与我的问题无关的代码,并留下了与我的问题相关的代码。这表示整数太大。我已将当前时间转换为毫秒,我正在尝试以毫秒为单位添加一个月、两周和一周,以实现“过期日期”。如果有人知道我将如何使用Long而不是int?我很困惑,因为我的日期没有被声明为整数 它在“dateExpired=dateExpired+2628000000;”处声明错误 public class VIP implements Serializable { private Date dateExpired;
public class VIP implements Serializable {
private Date dateExpired;
public VIP(Date dateExpired) {
this.dateExpired = new Date(Calendar.getInstance().getTimeInMillis());
}
public Date getDateExpired() {
return dateExpired;
}
public void setDateExpired(String ticketType) {
if (ticketType.equals("Gold")) {
dateExpired = dateExpired + 2628000000;
} else if (ticketType.equals("Silver")) {
dateExpired = dateExpired + 1209600000;
} else {
dateExpired = dateExpired + 604800000;
}
}
}
在数字后添加标记
L
,将其转换为long
文字:
public void setDateExpired(String ticketType) {
if (ticketType.equals("Gold")) {
dateExpired = dateExpired + 2628000000L;
} else if (ticketType.equals("Silver")) {
dateExpired = dateExpired + 1209600000L;
} else {
dateExpired = dateExpired + 604800000L;
}
}
如果没有它们,编译器将它们解释为int
文本,但是对于int
类型来说,这些值太大。您可以使用的最大int
值是2147483647
(不过最好不要在这种情况下混合使用类型,只需在整个过程中使用long)
您还将遇到添加错误类型的问题。将dateExpired更改为长
(并将其转换为日期
),或使用以下表格:
dateExpired = new Date(dateExpired.getTime() + 604800000L)
顺便说一句,它可能会帮助您以后记录大数字的含义:
dateExpired = dateExpired + 86400000L; // one day
不能将日期对象添加到长对象 使用
错误发生在哪一行?如果您使用java 8,您可以在java中查看LocalDate。正
int
不能大于2147483647。请在提问之前进行一些研究。您不能添加日期和整数…您好,谢谢您的回复。它现在声明“二进制运算符“+”的操作数类型错误”。第一种是日期,第二种是长的。我应该多加评论才对。我想这会避免以后的混乱。谢谢。是的,现在的问题是你要在一个长长的约会中加入一个日期。您只需选择使用Date还是long来表示您的价值(我自己选择使用long
),并相应地更改代码(我已将该部分添加到我的答案中)非常感谢。Netbeans现在已经停止给我发短信了!我将来会知道这一点的。再次感谢。
public void setDateExpired(String ticketType) {
if (ticketType.equals("Gold")) {
dateExpired = new Date(dateExpired.getTime() + 2628000000L);
} else if (ticketType.equals("Silver")) {
dateExpired = new Date(dateExpired.getTime() + 1209600000L);
} else {
dateExpired = new Date(dateExpired.getTime() + 604800000L);
}
}