【发布时间】:2021-03-17 13:00:36
【问题描述】:
我必须创建一个名为nextEvent 的方法,它接收并返回一个String,它表示这种模式中的日期:“yyyy-MM-dd HH:mm:ss”。我必须在这个String 中添加一个名为nrHours 的int,以修改下一个事件的日期。我的问题是我不知道如何将int 连接到string...
代码:
class Event {
private Date dateStart, dateEnd;
private String name;
public Event(String dateStart, String dateEnd, String name) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
this.dateStart = format.parse(dateStart);
this.dateEnd = format.parse(dateEnd);
} catch (Exception e) {
System.out.println("Not valid date format");
}
this.name = name;
}
public Date getDateStart() {
return dateStart;
}
public Date getDateEnd() {
return dateEnd;
}
public String getNume() {
return name;
}
}
class EventRecurrent extends Event {
private int nrHours;
private Date next;
EventRecurrent(String dateStart, String dateEnd, String name, int nrHours) {
super(dateStart, dateEnd, name);
this.nrHours = nrHours;
}
public String nextEvent(String next) {
// I dont know how can I add the nrHours to the String next
return next;
}
}
public class Main {
public static void main(String[] args) {
EventRecurrent er = new EventRecurrent("2019-03-09 22:46:00",
"2019-03-09 23:00:00", "walk the dog", 24);
System.out.println(er.nextEvent("2019-04-19 22:46:23"));
// 2019-04-20 22:46:00
}
}
在 Main 中是一个例子:如果 nextEvent 收到“2019-04-19 22:46:23”,并且 nrHours 是 24,那么它应该打印出:2019-04-20 22:46:00
java.text.* 和 java.util.* 被导入
【问题讨论】:
-
与您在 Event 类中处理日期的方式相同。将字符串解析为 LocalDateTime,进行日期运算,并将结果格式化为字符串。
-
就像您不要在字符串中传递小时数但明智地使用
int一样,也不要在字符串中传递日期和时间,而是明智地使用LocalDateTime. -
我也建议你不要使用
SimpleDateFormat和Date。这些类设计不佳且早已过时,尤其是前者,尤其是出了名的麻烦。而是使用LocalDateTime或ZonedDateTime;两者都来自java.time, the modern Java date and time API。
标签: java string class date methods