package com.levelup.java.date; import static org.junit.Assert.assertEquals; import java.time.LocalDate; import java.time.Month; import java.util.Calendar; import org.joda.time.DateTime; import org.junit.Test; /** * This java example will demonstrate how to find * the number days in a month. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/find-number-of-days-in-month/'>Days in month</a> */ public class DaysInMonth { @Test public void days_in_month_java() { Calendar c = Calendar.getInstance(); c.set(Calendar.MONTH, 3); c.set(Calendar.DAY_OF_MONTH, 4); c.set(Calendar.YEAR, 2014); int numberOfDays = c.getActualMaximum(Calendar.DAY_OF_MONTH); assertEquals(30, numberOfDays); } @Test public void days_in_month_java8() { LocalDate date = LocalDate.of(2014, Month.APRIL, 01); int length = date.getMonth().length(true); assertEquals(30, length); int length2 = date.lengthOfMonth(); assertEquals(30, length2); } @Test public void days_in_month_joda() { DateTime dateTime = new DateTime(2014, 4, 3, 0, 0, 0, 0); int daysInMonth = dateTime.dayOfMonth().getMaximumValue(); assertEquals(30, daysInMonth); } }