java - 如何使用日历秒到时间并将值传递回函数

标签 java algorithm calendar

我的场景是以特定模式创造时间

例如:开始时间和持续时间将由用户输入。

令开始时间为 9:00:00,持续时间为 60 秒。现在我的输出应该是将 60 秒加到我的开始时间并将其设置为结束时间。然后将 10 分钟添加到 startTime 并再次添加 60 秒并将其设置为结束时间。这将在一个循环中迭代。

我已经完成了部分工作并且得到了部分输出, 得到的输出就像

startTime : 9:00:00
EndTime   : 9:01:00
startTime : 9:00:00
EndTime   : 9:01:00
startTime : 9:00:00
EndTime   : 9:01:00

但是预期的输出是这样的

startTime : 9:00:00
EndTime   : 9:01:00
startTime : 9:11:00 // HERE ADDING 10mins to startTime and assigning it as startTime again
EndTime   : 9:12:00 // Adding 60sec duration to the updated startTime
startTime : 9:20:00
EndTime   : 9:21:00

我的代码:

public static void main(String[] args) throws ParseException {
        String myTime = "090000";
        for(int i=0;i<3;i++){
            SimpleDateFormat df = new SimpleDateFormat("HHmmss");
             Date d = df.parse(myTime); 
             Calendar cal = Calendar.getInstance();
             cal.setTime(d);
             cal.add(Calendar.SECOND, 60);
             String newTime = df.format(cal.getTime());
             System.out.println("Start time : "+myTime);
             System.out.println("end Time   :"+newTime);
        }

最佳答案

您忘记在循环结束时加上 10 分钟。 (另外,您不需要在每个循环中都创建 SimpleDateFormat)。

public static void main(String[] args) throws ParseException {
    SimpleDateFormat df = new SimpleDateFormat("HHmmss");
    String myTime = "090000";
    for(int i=0;i<3;i++){
        Date d = df.parse(myTime); 
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.add(Calendar.SECOND, 60);
        String newTime = df.format(cal.getTime());
        System.out.println("Start time : "+myTime);
        System.out.println("end Time   :"+newTime);

        // now add 10 minutes to the start time
        cal.setTime(d);
        cal.add(Calendar.MINUTE, 10);
        myTime = df.format(cal.getTime());
    }
}

关于java - 如何使用日历秒到时间并将值传递回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27854275/

相关文章:

Selenium Webdriver Java 中的 JavascriptExecutor

java - 这个程序是否以无限循环结束?我怎么知道?

java - dataTable 中的 JSF/Primefaces selectBooleanCheckbox 组件始终未选中

arrays - 在算法方面需要帮助 - 查找输出的最大总和

ruby - 如何内存一个多维数组的生成方法

javascript - 完整日历 - MinMax Time+SlotDuration 不显示小时列

java - 如何防止 TestNG 跳过测试?

python - LeetCode Python TwoSums

asp.net - 禁用 asp 上的 future 日期 :calendar control

java - Calendar.getInstance().getTime() 在 "GMT"中返回日期而不是默认时区