Hello, I am trying to creat a java swing application that allows the user to cal
ID: 3559093 • Letter: H
Question
Hello, I am trying to creat a java swing application that allows the user to calculate their age in days. Obviously, there aren't 31 days in all months. How can I get this so the month selected changes with the days? Thanks.
Here is the snippet of code where the actionListener occurs and the calculation are performed.
JButton buttonCalculate = new JButton("Calculate");
buttonCalculate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Calendar localCalendar = Calendar.getInstance(TimeZone.getDefault());
int yearToday = localCalendar.get(Calendar.YEAR);
int monthToday = localCalendar.get(Calendar.MONTH) + 1;
int dayToday = localCalendar.get(Calendar.DATE);
/////////////////////////
String StringbirthYear = yearComboBox.getSelectedItem().toString();
int birthYear = Integer.valueOf(StringbirthYear);
int currentBirthYear = yearToday - birthYear;
int currentBirthYearDays = currentBirthYear * 365;
/////////////////////////
String StringBirthMonth = monthComboBox.getSelectedItem().toString();
int birthMonth = Integer.valueOf(StringBirthMonth);
int currentBirthMonths = monthToday - birthMonth;
int currentBirthMonthDays = currentBirthMonths * 31;
/////////////////////////
String StringBirthDay = dayComboBox.getSelectedItem().toString();
int birthDay = Integer.valueOf(StringBirthDay);
int currentBirthDay = dayToday - birthDay;
/////////////////////////
int AgeInDays = currentBirthYearDays + currentBirthMonthDays + currentBirthDay;
String StringAgeinDays = Integer.toString(AgeInDays);
textFieldOutput.setText(StringAgeinDays);
}
}
Explanation / Answer
JButton buttonCalculate = new JButton("Calculate");
buttonCalculate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
/////////////////////////
String StringbirthYear = yearComboBox.getSelectedItem().toString();
int birthYear = Integer.valueOf(StringbirthYear);
/////////////////////////
String StringBirthMonth = monthComboBox.getSelectedItem().toString();
int birthMonth = Integer.valueOf(StringBirthMonth);
/////////////////////////
String StringBirthDay = dayComboBox.getSelectedItem().toString();
int birthDay = Integer.valueOf(StringBirthDay);
Calendar cal = Calendar.getInstance();
Date today = cal.getTime();
cal.set(birthYear, getBirthMonth(birthMonth ), birthDay );
Date birthday = cal.getTime();
long dateSubtract = today.getTime() - birthday.getTime();
long time = 1000 * 60 * 60 * 24;
textFieldOutput.setText(" " + dateSubtract / time + "");
}
}
int getBirthMonth(int value){
switch (value){
case 1:
return Calender.JANUARY;
break;
case 2:
return Calender.FEBURARY;
break;
case 3:
return Calender.MARCH;
break;
case 4:
return Calender.APRIL;
break;
case 5:
return Calender.MAY;
break;
case 6:
return Calender.JUNE;
break;
case 7:
return Calender.JULY;
break;
case 8:
return Calender.AUGUST;
break;
case 9:
return Calender.SEPTEMBER;
break;
case 10:
return Calender.OCTOBER;
break;
case 11:
return Calender.NOVEMBER;
break;
case 12:
return Calender.DECEMBER;
break;
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.