Problem
Write a JavaFX program that will capture the selected birth date on the date picker and subtract the current date from it to calculate Jane's age. Then the age is displayed on the application. For example, you select 11/20/2010 on the date picker and the current date is 11/27/2022, then your program should display "Jane is 12 years old."
So, your application should have:
I. A label towards the top of the screen that reads: "Pick Jane's birth date"
II. In the center of the screen will be a date picker.
III. There will be another label towards the bottom of the screen which is only visible after the user selects a date on the date picker. And it will read "Jane is XX years old". The XX represents age. It will be something like 5 or 16 or 30 or any such number.
One of your main tasks will be to subtract a date from another. This can have very granular outcome like 12 years 6 months 15 days 8 hours 34 minutes and 5 seconds. We don't need that. We only want the year. There are several ways you can do it. Feel free. One suggestion I have is to avoid 'Date' class. Most of its methods are deprecated (but if it's your preference, go ahead. No points will be deducted).
One of the ways is to have the subtracted value in milliseconds and then use arithmetic to convert it into years. The getTime() method will generate output in milliseconds.
long diff = dateSelected.getTime() - currentDate.getTime();
long years = (diff/(1000|*60*60*24*365));
Check the classes LocalDate, LocalDateTime and this package: import java.time.temporal.ChronoUnit;
which allows a method like this: long diff = ChronoUnit.YEARS.between(dateSelected, currentDate);
the output is only years.
Those are just suggestions. Feel free to show your touch.
Attach the following screen shots:
• A screen shot after you run the program and before selecting a date.
• A screen shot after selecting a date.