I am beginner in android studio, and create an app of age calculator but i don't understand that how to calculate next birthday from current date and how to convert your age into weeks, please help Thank you,
Asked
Active
Viewed 1,455 times
0
-
#next birthdate from current date in the sense? – Radhey Oct 25 '17 at 05:54
-
Maybe https://stackoverflow.com/questions/32675088/how-to-calculate-next-birthday-from-current-date-in-java?rq=1 – Oct 25 '17 at 05:55
-
this is a maths question lol – Bhargav Oct 25 '17 at 06:12
2 Answers
0
This will help to get remaining days
import java.text.*;
import java.util.*;
public class NextBday {
public void printRemainingDays()
{
Calendar earlier = Calendar.getInstance();
Calendar later = Calendar.getInstance();
int userDay, currentDay, currentYear, currentMonth;
String delimeter = "/";
String dob = "05/15/1980";
String bDate[] = dob.split(delimeter,3);
currentYear = earlier.get(Calendar.YEAR);
currentMonth = earlier.get(Calendar.MONTH);
currentDay = earlier.get(Calendar.DATE);
earlier.set(currentYear, currentMonth, currentDay);
if(earlier.get(Calendar.MONTH) >= later.get(Calendar.MONTH))
{
later.set(currentYear+1, Integer.valueOf(bDate[0]), Integer.valueOf(bDate[1]));
}
else
later.set(currentYear, Integer.valueOf(bDate[0]), Integer.valueOf(bDate[1]));
int earlierDays = earlier.get( Calendar.DAY_OF_YEAR );
int laterDays = later.get( Calendar.DAY_OF_YEAR );
long remain = laterDays - earlierDays;
System.out.println(remain);
}
}
I hope this will help!

Alpesh Sorathiya
- 510
- 3
- 13
0
this is correct Way so please try this
public static String calculateAge(String strDate) {
int years = 0;
int months = 0;
int days = 0;
try {
long timeInMillis = Long.parseLong(strDate);
Date birthDate = new Date(timeInMillis);
//create calendar object for birth day
Calendar birthDay = Calendar.getInstance();
birthDay.setTimeInMillis(birthDate.getTime());
//create calendar object for current day
long currentTime = System.currentTimeMillis();
Calendar now = Calendar.getInstance();
now.setTimeInMillis(currentTime);
//Get difference between years
years = now.get(Calendar.YEAR) - birthDay.get(Calendar.YEAR);
int currMonth = now.get(Calendar.MONTH) + 1;
int birthMonth = birthDay.get(Calendar.MONTH) + 1;
//Get difference between months
months = currMonth - birthMonth;
//if month difference is in negative then reduce years by one and calculate the number of months.
if (months < 0) {
years--;
months = 12 - birthMonth + currMonth;
if (now.get(Calendar.DATE) < birthDay.get(Calendar.DATE))
months--;
} else if (months == 0 && now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) {
years--;
months = 11;
}
//Calculate the days
if (now.get(Calendar.DATE) > birthDay.get(Calendar.DATE))
days = now.get(Calendar.DATE) - birthDay.get(Calendar.DATE);
else if (now.get(Calendar.DATE) < birthDay.get(Calendar.DATE)) {
int today = now.get(Calendar.DAY_OF_MONTH);
now.add(Calendar.MONTH, -1);
days = now.getActualMaximum(Calendar.DAY_OF_MONTH) - birthDay.get(Calendar.DAY_OF_MONTH) + today;
} else {
days = 0;
if (months == 12) {
years++;
months = 0;
}
}
//adarsh
if (currMonth > birthMonth) {
if (birthDay.get(Calendar.DATE) > now.get(Calendar.DATE)) {
months = months - 1;
}
}//---------------------------------
} catch (Exception e) {
e.printStackTrace();
}
//Create new Age object
return years + " Y " + months + " M " + days + " days";
}

adarsh
- 403
- 3
- 8