チュートリアル
値が時刻として妥当かどうかを確認するための方法について説明します。
00時00分00秒から23時59分59秒の間であることを確認する方法をご紹介します。
メソッド概要
引数で渡された値の属性チェック(時刻の妥当性)を行う。
引数の文字列が時刻として妥当性がある場合はtrue/左記以外はfalseを返却します。
※時間は0時から23時までとします。
※nullはfalseとして返却します。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
package sample.code; public class DateCheker02 { /** * 時刻チェック * @param str チェック対象の文字列(HHmmss、HH:mm:ss) * @return true:時刻、false:時刻ではない */ public static boolean isTime(String str) { boolean ret = false; if (str != null) { try { String hms = str.replace(":", ""); if (hms != null && hms.length() == 6) { int hh = Integer.parseInt(hms.substring(0, 2)); int mm = Integer.parseInt(hms.substring(2, 4)); int ss = Integer.parseInt(hms.substring(4)); ret = ( 0 <= hh && hh <= 23 && 0 <= mm && mm <= 59 && 0 <= ss && ss <= 59 ); } } catch (Exception e) { } } return ret; } } |
テストコード(JUnit)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
package sample.test; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; import sample.code.DateCheker02; class DateCheckerTest02 { @Test void test01() { // null assertFalse(DateCheker02.isTime(null)); } @Test void test02() { // 空文字 assertFalse(DateCheker02.isTime("")); } @Test void test03() { // HHmmss形式 assertTrue(DateCheker02.isTime("234059")); } @Test void test04() { // HH:mm:ss形式 assertTrue(DateCheker02.isTime("00:11:22")); } @Test void test05() { // 時不正 assertFalse(DateCheker02.isTime("250203")); } @Test void test06() { // 分不正 assertFalse(DateCheker02.isTime("156803")); } @Test void test07() { // 秒不正 assertFalse(DateCheker02.isTime("123878")); } } |