【发布时间】:2019-06-24 14:20:44
【问题描述】:
场景
用户可以使用应用程序记录他们的许可证,他们输入许可证被兑换的日期,他们还输入许可证的长度(天)。
我想知道您是否能够从这两个变量中计算出新的日期。例如
days = INPUT FROM USER; days = 7;
dateRedeemed = new Date(); date = 24/06/2019;
newDate = dateRedeemed + days; newDate = 01/07/2019;
//Getting the values
String name = txtName.getText();
String contact = txtContact.getText();
int years = Integer.parseInt(cboyears.getSelectedItem().toString());
int months = Integer.parseInt(cboMonths.getSelectedItem().toString());
int days = Integer.parseInt(cboDays.getSelectedItem().toString());
//Calculation
days = (years * 365) + (months * 12) + days;
SimpleDateFormat format = new SimpleDateFormat("dd/MM/YYYY");
Date dRedeemed = cboDate.getDate();
String strRedeemed = format.format(dRedeemed);
如果有人能帮忙那就太好了
编辑
在这个帖子中有一些很好的建议,你们中的很多人一直指出 Date 类非常糟糕和过时,我现在要开始使用 LocalDateTime 类,因为它看起来更强大,我想问的另一件事是,是否有更有效的日期选择器。我一直在用一个swingx日期选择器有没有更有效的选择?
【问题讨论】:
-
你使用的是 JDK 8 吗?
-
从不使用
Date、SimpleDateFormat和Calendar类。很久以前,它们被java.time包中的类所取代。 -
我不认为
LocalDateTime是正确的类型。这看起来像是ZonedDateTime的应用程序。