mirror of
https://github.com/oliexdev/openScale.git
synced 2025-08-27 02:05:26 +02:00
Move age calculation to DateTimeHelpers
Also add unit test and make sure that leap years are handled correctly.
This commit is contained in:
@@ -20,6 +20,8 @@ import android.arch.persistence.room.ColumnInfo;
|
|||||||
import android.arch.persistence.room.Entity;
|
import android.arch.persistence.room.Entity;
|
||||||
import android.arch.persistence.room.PrimaryKey;
|
import android.arch.persistence.room.PrimaryKey;
|
||||||
|
|
||||||
|
import com.health.openscale.core.utils.DateTimeHelpers;
|
||||||
|
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@@ -124,8 +126,7 @@ public class ScaleUser {
|
|||||||
this.goalDate = goalDate;
|
this.goalDate = goalDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isMale()
|
public boolean isMale() {
|
||||||
{
|
|
||||||
if (gender == 0)
|
if (gender == 0)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
@@ -133,19 +134,17 @@ public class ScaleUser {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public int getAge(Date todayDate) {
|
public int getAge(Date todayDate) {
|
||||||
Calendar cal_today = Calendar.getInstance();
|
Calendar calToday = Calendar.getInstance();
|
||||||
cal_today.setTime(todayDate);
|
calToday.setTime(todayDate);
|
||||||
Calendar cal_birthday = Calendar.getInstance();
|
|
||||||
cal_birthday.setTime(birthday);
|
|
||||||
int userAge = cal_today.get(Calendar.YEAR) - cal_birthday.get(Calendar.YEAR);
|
|
||||||
if (cal_today.get(Calendar.DAY_OF_YEAR) < cal_birthday.get(Calendar.DAY_OF_YEAR)) userAge--;
|
|
||||||
|
|
||||||
return userAge;
|
Calendar calBirthday = Calendar.getInstance();
|
||||||
|
calBirthday.setTime(birthday);
|
||||||
|
|
||||||
|
return DateTimeHelpers.yearsBetween(calBirthday, calToday);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setInitialWeight(float weight) {
|
public void setInitialWeight(float weight) {
|
||||||
this.initialWeight = weight;
|
this.initialWeight = weight;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setConvertedInitialWeight(float weight) {
|
public void setConvertedInitialWeight(float weight) {
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2017 Erik Johansson <erik@ejohansson.se>
|
/* Copyright (C) 2017-2018 Erik Johansson <erik@ejohansson.se>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -39,4 +39,17 @@ public final class DateTimeHelpers {
|
|||||||
|
|
||||||
return days;
|
return days;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public int yearsBetween(Calendar start, Calendar end) {
|
||||||
|
int years = end.get(Calendar.YEAR) - start.get(Calendar.YEAR);
|
||||||
|
|
||||||
|
final int startMonth = start.get(Calendar.MONTH);
|
||||||
|
final int endMonth = end.get(Calendar.MONTH);
|
||||||
|
if (endMonth < startMonth
|
||||||
|
|| (endMonth == startMonth
|
||||||
|
&& end.get(Calendar.DAY_OF_MONTH) < start.get(Calendar.DAY_OF_MONTH))) {
|
||||||
|
years -= 1;
|
||||||
|
}
|
||||||
|
return years;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 2017 Erik Johansson <erik@ejohansson.se>
|
/* Copyright (C) 2017-2018 Erik Johansson <erik@ejohansson.se>
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -77,4 +77,33 @@ public class DateTimeHelpersTest {
|
|||||||
getDate(2014, 12, 31),
|
getDate(2014, 12, 31),
|
||||||
getDate(2017, 1, 1)));
|
getDate(2017, 1, 1)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void yearsBetween() throws Exception {
|
||||||
|
assertEquals(19,
|
||||||
|
DateTimeHelpers.yearsBetween(
|
||||||
|
getDate(1980, 3, 26),
|
||||||
|
getDate(2000, 3, 25)));
|
||||||
|
assertEquals(20,
|
||||||
|
DateTimeHelpers.yearsBetween(
|
||||||
|
getDate(1980, 3, 26),
|
||||||
|
getDate(2000, 3, 26)));
|
||||||
|
assertEquals(20,
|
||||||
|
DateTimeHelpers.yearsBetween(
|
||||||
|
getDate(1980, 3, 26),
|
||||||
|
getDate(2000, 3, 27)));
|
||||||
|
|
||||||
|
assertEquals(0,
|
||||||
|
DateTimeHelpers.yearsBetween(
|
||||||
|
getDate(2000, 3, 1),
|
||||||
|
getDate(2001, 2, 28)));
|
||||||
|
assertEquals(1,
|
||||||
|
DateTimeHelpers.yearsBetween(
|
||||||
|
getDate(2000, 3, 1),
|
||||||
|
getDate(2001, 3, 1)));
|
||||||
|
assertEquals(1,
|
||||||
|
DateTimeHelpers.yearsBetween(
|
||||||
|
getDate(2000, 3, 1),
|
||||||
|
getDate(2001, 3, 2)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user