package ru.orangesoftware.financisto2.test.builders; import java.util.Calendar; import java.util.Date; /** * Created by IntelliJ IDEA. * User: Denis Solonenko * Date: 2/8/11 8:32 PM */ public class DateTime { public static DateTime NULL_DATE = new DateTime(){ @Override public Date asDate() { return new Date(0); } @Override public long asLong() { return 0; } }; private final Calendar c = Calendar.getInstance(); private DateTime() {} public static DateTime today() { return new DateTime(); } public static DateTime yesterday() { DateTime dt = new DateTime(); dt.c.add(Calendar.DAY_OF_YEAR, -1); return dt; } public static DateTime date(int year, int month, int day) { DateTime dt = new DateTime(); dt.c.set(Calendar.YEAR, year); dt.c.set(Calendar.MONTH, month-1); dt.c.set(Calendar.DAY_OF_MONTH, day); return dt.atMidnight(); } public static DateTime fromTimestamp(long timestamp) { DateTime dt = new DateTime(); dt.c.setTimeInMillis(timestamp); return dt; } public DateTime atMidnight() { return at(0, 0, 0, 0); } public DateTime atNoon() { return at(12, 0, 0, 0); } public DateTime atDayEnd() { return at(23, 59, 59, 999); } public DateTime at(int hh, int mm, int ss, int ms) { c.set(Calendar.HOUR_OF_DAY, hh); c.set(Calendar.MINUTE, mm); c.set(Calendar.SECOND, ss); c.set(Calendar.MILLISECOND, ms); return this; } public long asLong() { return c.getTimeInMillis(); } public Date asDate() { return c.getTime(); } }