This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-lang.git


The following commit(s) were added to refs/heads/master by this push:
     new ac00199  [LANG-1494] Add org.apache.commons.lang3.time.CalendarUtils.
ac00199 is described below

commit ac00199379a5fcc4db012d8eb1336c9d9802540d
Author: Gary Gregory <[email protected]>
AuthorDate: Fri Oct 18 16:08:46 2019 -0400

    [LANG-1494] Add org.apache.commons.lang3.time.CalendarUtils.
---
 src/changes/changes.xml                            |  1 +
 .../apache/commons/lang3/time/CalendarUtils.java   | 73 ++++++++++++++++++++++
 .../commons/lang3/time/CalendarUtilsTest.java      | 43 +++++++++++++
 3 files changed, 117 insertions(+)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 34d0c32..f55297f 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -76,6 +76,7 @@ The <action> type attribute can be add,update,fix,remove.
     <action                   type="update" 
dev="ggregory">com.puppycrawl.tools:checkstyle 8.24 -> 8.25.</action>
     <action issue="LANG-696"  type="update" dev="ggregory" due-to="Peter 
Verhas">Update documentation related to the issue LANG-696 #449.</action>
     <action                   type="update" dev="ggregory" due-to="Peter 
Verhas">AnnotationUtils little cleanup #467.</action>
+    <action issue="LANG-1494" type="add" dev="ggregory" due-to="Gary 
Gregory">Add org.apache.commons.lang3.time.Calendars.</action>
   </release>
 
   <release version="3.9" date="2019-04-09" description="New features and bug 
fixes. Requires Java 8, supports Java 9, 10, 11.">
diff --git a/src/main/java/org/apache/commons/lang3/time/CalendarUtils.java 
b/src/main/java/org/apache/commons/lang3/time/CalendarUtils.java
new file mode 100644
index 0000000..b9899ca
--- /dev/null
+++ b/src/main/java/org/apache/commons/lang3/time/CalendarUtils.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.lang3.time;
+
+import java.util.Calendar;
+import java.util.Objects;
+
+/**
+ * Helps use {@link Calendar}s.
+ *
+ * @since 3.10
+ */
+public class CalendarUtils {
+
+    /**
+     * The singleton instance for {@link Calendar#getInstance()}.
+     */
+    public static final CalendarUtils INSTANCE = new 
CalendarUtils(Calendar.getInstance());
+
+    private final Calendar calendar;
+
+    /**
+     * Creates an instance for the given Calendar.
+     *
+     * @param calendar A Calendar.
+     */
+    public CalendarUtils(final Calendar calendar) {
+        super();
+        this.calendar = Objects.requireNonNull(calendar, "calendar");
+    }
+
+    /**
+     * Gets the current day of month.
+     *
+     * @return the current day of month.
+     */
+    public int getDayOfMonth() {
+        return calendar.get(Calendar.DAY_OF_MONTH);
+    }
+
+    /**
+     * Gets the current month.
+     *
+     * @return the current month.
+     */
+    public int getMonth() {
+        return calendar.get(Calendar.MONTH);
+    }
+
+    /**
+     * Gets the current year.
+     *
+     * @return the current year.
+     */
+    public int getYear() {
+        return calendar.get(Calendar.YEAR);
+    }
+}
diff --git a/src/test/java/org/apache/commons/lang3/time/CalendarUtilsTest.java 
b/src/test/java/org/apache/commons/lang3/time/CalendarUtilsTest.java
new file mode 100644
index 0000000..74ac009
--- /dev/null
+++ b/src/test/java/org/apache/commons/lang3/time/CalendarUtilsTest.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.lang3.time;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.Calendar;
+
+import org.junit.jupiter.api.Test;
+
+public class CalendarUtilsTest {
+
+    @Test
+    public void testGetYear() {
+        assertEquals(Calendar.getInstance().get(Calendar.YEAR), 
CalendarUtils.INSTANCE.getYear());
+    }
+
+    @Test
+    public void testGetMonth() {
+        assertEquals(Calendar.getInstance().get(Calendar.MONTH), 
CalendarUtils.INSTANCE.getMonth());
+    }
+
+    @Test
+    public void testGetDayOfMonth() {
+        assertEquals(Calendar.getInstance().get(Calendar.DAY_OF_MONTH), 
CalendarUtils.INSTANCE.getDayOfMonth());
+    }
+
+}

Reply via email to