001package org.javamoney.moneta.internal.convert; 002 003import java.io.Serializable; 004import java.util.Calendar; 005import java.util.GregorianCalendar; 006 007/** 008 * Class to model a local date without timezone info. 009 * @deprecated Do not use this class in your code, it will be removed/replaced with Java 8 by java.time. 010 */ 011@Deprecated 012public final class LocalDate implements Comparable<LocalDate>, Serializable{ 013 final int year; 014 final int month; 015 final int dayOfMonth; 016 017 LocalDate(int year, int month, int dayOfMonth){ 018 this.year = year; 019 this.month = month; 020 this.dayOfMonth = dayOfMonth; 021 } 022 023 static LocalDate now(){ 024 Calendar cal = GregorianCalendar.getInstance(); 025 return from(cal); 026 } 027 028 static LocalDate yesterday(){ 029 return beforeDays(1); 030 } 031 032 static LocalDate beforeDays(int days){ 033 Calendar cal = GregorianCalendar.getInstance(); 034 cal.add(Calendar.DAY_OF_YEAR, days*-1); 035 return from(cal); 036 } 037 038 public LocalDate minusDays(int days){ 039 Calendar cal = toCalendar(); 040 cal.add(Calendar.DAY_OF_YEAR, days*-1); 041 return from(cal); 042 } 043 044 /** 045 * Create a new (local/default Locale based) GregorianCalendar instance. 046 * @return a new (local/default Locale based) GregorianCalendar instance, not null. 047 */ 048 public Calendar toCalendar() { 049 return new GregorianCalendar(year, month-1, dayOfMonth); 050 } 051 052 /** 053 * Cerates a new instance from the given Calendar. 054 * @param cal the Calendar, not null. 055 * @return the corresponding LocalDate instance, never null. 056 */ 057 public static LocalDate from(Calendar cal) { 058 int year = cal.get(Calendar.YEAR); 059 int month = cal.get(Calendar.MONTH)+1; 060 int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH); 061 return new LocalDate(year, month, dayOfMonth); 062 } 063 064 public int getYear() { 065 return year; 066 } 067 068 public int getMonth() { 069 return month; 070 } 071 072 public int getDayOfMonth() { 073 return dayOfMonth; 074 } 075 076 public boolean before(LocalDate localDate){ 077 return compareTo(localDate)<0; 078 } 079 080 public boolean after(LocalDate localDate){ 081 return compareTo(localDate)>0; 082 } 083 084 @Override 085 public int compareTo(LocalDate o) { 086 return 0; 087 } 088 089 @Override 090 public boolean equals(Object o) { 091 if (this == o) return true; 092 if (!(o instanceof LocalDate)) return false; 093 094 LocalDate localDate = (LocalDate) o; 095 096 return dayOfMonth == localDate.dayOfMonth && month == localDate.month && year == localDate.year; 097 098 } 099 100 @Override 101 public int hashCode() { 102 int result = year; 103 result = 31 * result + month; 104 result = 31 * result + dayOfMonth; 105 return result; 106 } 107 108 @Override 109 public String toString() { 110 return "LocalDate{" + 111 "year=" + year + 112 ", month=" + month + 113 ", dayOfMonth=" + dayOfMonth + 114 '}'; 115 } 116 117 118}