可能重复:
计算两个Java日期实例之间的差异
在java中找到两个java.util.Date对象之间差异的最简单方法是什么.我们只对单独的日子感兴趣(没有分钟,秒)
注意:我们不希望将joda-time包用作此依赖项.
我需要用户输入的生日(最好是dd/mm//yyyy格式)并根据今天的日期查找他们的年龄.有人可以向我解释我应该找到的这个过程吗?我需要以以下格式打印出来:
"你是19岁,4个月,12天,8小时,44分钟,39秒."
我对如何从另一个日期减去日期感到困惑,以及我将如何分别引用每个部分(年,月,日,小时等).
我现在的代码供参考:
import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Scanner;
public class Driver {
public Driver(){}
public static void main( String[] args){
Driver menu = new Driver();
MenuOptions option;
do{
menu.displayMenu();
option = menu.getResponse();
menu.runOption(option);
}while(option != MenuOptions.Quit);
}
private enum MenuOptions{
AgeCalc("Calculate your age"),
AnniversaryCalc("Calculate time until specified date"),
AgeDifference("Find the time between two specified dates"),
Quit("Exit the program");
private String value;
private MenuOptions(String value){
this.value = value;
}
public String …Run Code Online (Sandbox Code Playgroud) 假设我有: 员工具有模型的startDate作为其属性变量和推广模式有promotionDate。我想知道员工在晋升之前工作了多长时间,我必须找到promotionDate 和startDate 之间的差异。如果我将 startDate 作为employee.getStartDate()和promotionDate 作为promotion.getPromotionDate,我怎么能找到在年月日差为任何日期,
任何帮助将非常感激。
更新:我解决了以下问题
String startDate = "2018-01-01";
String promotionDate = "2019-11-08";
LocalDate sdate = LocalDate.parse(startDate);
LocalDate pdate = LocalDate.parse(promotionDate);
LocalDate ssdate = LocalDate.of(sdate.getYear(), sdate.getMonth(), sdate.getDayOfMonth());
LocalDate ppdate = LocalDate.of(pdate.getYear(), pdate.getMonth(), pdate.getDayOfMonth());
Period period = Period.between(ssdate, ppdate);
System.out.println("Difference: " + period.getYears() + " years "
+ period.getMonths() + " months "
+ period.getDays() + " days ");
Run Code Online (Sandbox Code Playgroud)
谢谢你。