package com.levelup.java.date;
import static org.junit.Assert.assertEquals;
import java.time.LocalDate;
import java.time.Month;
import java.time.temporal.TemporalAdjusters;
import org.apache.log4j.Logger;
import org.joda.time.DateTime;
import org.junit.Test;
/**
* This java example will demonstrate
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/first-day-in-year/'>First year in year</a>
*
*/
public class FirstDayInYear {
private static final Logger logger = Logger.getLogger(GenerateRandomDate.class);
@Test
public void first_day_in_year_current_year_java8 () {
LocalDate date = LocalDate.of(2014, Month.FEBRUARY, 01);
LocalDate firstDayOfYear = date.with(TemporalAdjusters.firstDayOfYear());
assertEquals(1, firstDayOfYear.getDayOfMonth());
}
@Test
public void first_day_in_year_current_year_joda () {
DateTime dateTime = new DateTime(2012, 1, 1, 0, 0, 0, 0);
DateTime firstDayOfTheFirstWeek = dateTime
.withWeekyear(dateTime.getYear()).withWeekOfWeekyear(1)
.withDayOfWeek(1);
logger.info(firstDayOfTheFirstWeek);
assertEquals(2012, firstDayOfTheFirstWeek.getYear());
assertEquals(1, firstDayOfTheFirstWeek.getMonthOfYear());
assertEquals(2, firstDayOfTheFirstWeek.getDayOfMonth());
}
@Test
public void first_day_in_year_prior_year_joda () {
DateTime dateTime = new DateTime(2013, 1, 1, 0, 0, 0, 0);
DateTime firstDayOfTheFirstWeek = dateTime
.withWeekyear(dateTime.getYear()).withWeekOfWeekyear(1)
.withDayOfWeek(1);
logger.info(firstDayOfTheFirstWeek);
assertEquals(2012, firstDayOfTheFirstWeek.getYear());
assertEquals(12, firstDayOfTheFirstWeek.getMonthOfYear());
assertEquals(31, firstDayOfTheFirstWeek.getDayOfMonth());
}
}