我必须创建一个名为nextEvent
的方法,它接收并返回一个表示此模式中的日期的String
:“yyyyy-MM-dd HH: mm: ss”。我必须在此String
中添加一个名为nrHour
的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
}
}
In the Main是一个例子:如果nextEvent收到“2019-04-19 22:46:23”,而nrHour是24,那么它应该打印出来:2019-04-20 22:46:00
java.text.* 和 java.util.* 已导入
将日期和时间作为字符串传递是一个非常糟糕的设计。使用LocalDateTime
或ZonedDateTime
,您的任务将是微不足道的。在任何情况下,我都建议您使用java.time,现代Java日期和时间API,用于您的所有日期和时间工作。提到的两个类是该API的一部分。
但是,如果您坚持使用糟糕的设计,则必须将字符串转换为上述类型之一,添加小时数并转换回来。对于转换,我们需要一个格式化程序。
protected static final DateTimeFormatter FORMATTER
= DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
现在你的方法变成了:
public String nextEvent(String next) {
LocalDateTime dateTime = LocalDateTime.parse(next, FORMATTER);
dateTime = dateTime.plusHours(nrHours);
return dateTime.format(FORMATTER);
}
Oracle教程:Date Time讲解如何使用java.time.
这样你可以增加时间。
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = formatter.parse(next);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, 2);
System.out.println(calendar.getTime());
我正在寻找确切的开始和结束日期根据我们的桌面日历,如果我给周,年作为输入。但是上面的代码给出的输出是2009年1月27日星期日。我知道这是因为按照我们的说法,一周的第一天默认是星期天,但我需要按照桌面日历
Outlook Calendar有开发文档吗 我想通过java代码在outlook创建一个重复的日历,创建一个每天、每周重复的日历,要怎么实现 我尝试过这种,但是只能创建连续的日历,没有办法创建周期重复的日历
本文向大家介绍jQuery简单实现日历的方法,包括了jQuery简单实现日历的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery简单实现日历的方法。分享给大家供大家参考。具体分析如下: 原理挺简单的,首先算出一个月有多少天,再算出这个月的第一天是星期几,接着顺序排下来就可以了. 希望本文所述对大家的jQuery程序设计有所帮助。
本文向大家介绍C#简单输出日历的方法,包括了C#简单输出日历的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#简单输出日历的方法。分享给大家供大家参考。具体如下: 用C#输出日历,此功能可用于Ajax方式列出计划日程相关的内容,由于是C#控制输出,可以方便加上自己需要的业务处理逻辑。 1.控制台输出: 效果图: 2.Html表格输出: 希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍PHP简单创建日历的方法,包括了PHP简单创建日历的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP简单创建日历的方法。分享给大家供大家参考,具体如下: 运行结果如下图所示: 关于在线显示日期还可参考本站在线工具: 在线万年历日历 网页万年历日历 在线万年历黄历flash版 更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数学