有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在Java中计算日期

我是java的初学者。我需要计算一下日期。如果我输入持续时间并选择开始日期,则应自动计算结束日期。我已经在jQuery中完成了这项工作,它很有效

enter image description here

这是我在jQuery中尝试的工作代码:

 $( "#start_date" ).change(function() {

        if($( "#duration" ).val()==""){
            return false;
        }
        var x = Number($( "#duration" ).val());


        var CurrentDate = new Date($("#start_date" ).val());
        CurrentDate.setMonth(CurrentDate.getMonth() + x);
        $("#end_date" ).val(CurrentDate.toISOString().split('T')[0]);

    });

要选择我使用jDateChooser的日期,请执行以下操作:

int duration = Integer.parseInt(txtdur.getText()); 

Date date = new Date();
SimpleDateFormat Date_Format = new SimpleDateFormat("yyyy-MM-dd");
String date1 = Date_Format.format(txtdate.getDate());

之后我不知道代码有多完整


共 (1) 个答案

  1. # 1 楼答案

    您应该将日期转换为即时,并添加所需的时间

    import java.time.Duration;
    import java.util.Date;
    
    /*...*/
    
    public void setEndDate(int timeInHours){
        /* getting the start date */
        Date startDate = myJDateChooserStartDate.getDate();
    
        /* creating a new date */
        Date endDate = Calendar.getInstance().getTime();
    
        /* setting the start date to endDate */
        endDate.setTime(startDate.getTime());
    
        /* increasing the endDate */
        endDate = increaseTimeInHours(endDate, timeInHours);
    
        /* setting the end date to the component */
        myJDateChooserEndDate.setDate(endDate);
    }
    
    public static Date increaseTimeInHours(Date date, int hours) {
    
        return Date.from(date.toInstant().plus(Duration.ofHours(hours)));
    }
    
    /*...*/