Browse Source

[공통][Common] 만 나이 제한하는 유틸 및 테스트

hyodong.min 7 years ago
parent
commit
5964671d0f

+ 51 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/util/DateUtil.java

@@ -0,0 +1,51 @@
+/*
+ * COPYRIGHT (c) 2018 All rights reserved by HANWHA LIFE.
+ */
+package kr.co.zumo.app.lifeplus.util;
+
+import java.util.Calendar;
+
+/**
+ * DateUtil
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018. 9. 18.]   [최초 작성]
+ * @since 2018. 9. 18.
+ */
+public class DateUtil {
+
+  /**
+   * 제한 나이보다 이상인지 판단한다.
+   * <p>
+   * (1970)
+   * |----------------------| 14 (minAge 의 기준 날짜, 오늘 - 14년, 2018.9.18 이라면 2014.9.18)
+   * |-------------------|    20 (입력 생년월일, 만 20)
+   * <p>
+   * 기준 날짜보다 생년월일이 작거나 같다면 통과
+   *
+   * @param minAge         제한 나이
+   * @param birthdayMillis 생일의 밀리세컨드
+   * @return boolean
+   */
+  public static boolean minAge(int minAge, long birthdayMillis) {
+    /**
+     * 생일
+     */
+    // 오늘 날짜
+    Calendar dDay = Calendar.getInstance();
+    // 나이(minAge)를 빼서 기준 연도를 설정함
+    dDay.set(Calendar.YEAR, dDay.get(Calendar.YEAR) - minAge);
+    long dDayMillis = dDay.getTimeInMillis();
+    // min age 만큼의 날짜
+    long dDayDate = dDayMillis / 1000 / 60 / 60 / 24;
+
+    // 생일의 날짜
+    long birthdayDate = birthdayMillis / 1000 / 60 / 60 / 24;
+
+    // 만 나이(minAge)의 날짜와 같거나 작으면 통과
+    return birthdayDate <= dDayDate;
+  }
+}

+ 47 - 0
app/src/test/java/kr/co/zumo/app/lifeplus/util/DateUtilTest.java

@@ -0,0 +1,47 @@
+package kr.co.zumo.app.lifeplus.util;
+
+import org.junit.Test;
+
+import java.util.Calendar;
+
+import static junit.framework.Assert.assertFalse;
+import static junit.framework.Assert.assertTrue;
+
+/**
+ * DateUtilTest
+ * <pre>
+ * </pre>
+ *
+ * @author 민효동
+ * @version 1.0
+ * @history 민효동   [2018. 9. 18.]   [최초 작성]
+ * @since 2018. 9. 18.
+ */
+public class DateUtilTest {
+
+  @Test
+  public void minAge() {
+
+    Calendar birthday;
+    long birthdayMillis;
+
+    birthday = Calendar.getInstance();
+    birthday.set(2004, Calendar.SEPTEMBER, 18);
+    birthdayMillis = birthday.getTimeInMillis();
+
+    assertTrue(DateUtil.minAge(14, birthdayMillis));
+
+    birthday = Calendar.getInstance();
+    birthday.set(1979, Calendar.JANUARY, 8);
+    birthdayMillis = birthday.getTimeInMillis();
+
+    assertTrue(DateUtil.minAge(14, birthdayMillis));
+
+    birthday = Calendar.getInstance();
+    birthday.set(2005, Calendar.APRIL, 22);
+    birthdayMillis = birthday.getTimeInMillis();
+
+    assertFalse(DateUtil.minAge(14, birthdayMillis));
+
+  }
+}