import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Random; /** * A Class to hold info about rabbits * Mostly as an illustration of comparable * @author gtowell * Created: Feb 2020 * Modified: Oct 17, 2020 */ public class Rabbit implements Comparable { enum BreedEnum { DwarfDutch, Angora, FrenchLop } /** The breed */ private final BreedEnum breed; /** An id */ private final int iD; /** The rabbit's nickname: flopsy, mopsy, peter, etc */ private final String nickname; /** * Create an instance of rabbit * @param breed the breed * @param id an ID number * @param nn a stirng nickname. If null, a random char set */ public Rabbit(BreedEnum breed, int id, String nn) { this.breed = breed; this.iD = id; this.nickname = nn==null ? makeName() : nn; } /** * Default Constructor. * An angora rabbit with random id and name */ @SuppressWarnings("unused") private Rabbit() { this.breed = BreedEnum.Angora; this.iD = (new Random()).nextInt(200000); this.nickname=makeName(); } /** * Make a 7 lower case char random string. * @return a random string */ private String makeName() { Random r = new Random(); StringBuffer sb = new StringBuffer(); for (int i=0; i<7; i++) { char c = (char)('a' + r.nextInt(26)); sb.append(c); } return sb.toString(); } /** How to determine if two rabbits are the same */ public boolean equals(Rabbit otherRabbit) { return otherRabbit.getId()==iD; } public int getId() { return iD; } public String getNickName() { return nickname; } public BreedEnum getBreed() { return breed; } /** * A String rep of a rabbit */ public String toString() { return "[["+breed + " " + iD + " " + nickname + "]]"; } /** Compare two rabbits */ @Override public int compareTo(Rabbit o) { //return iD - o.getId(); //return nickname.compareTo(o.getNickName()); //return breed.toString().compareTo(o.getBreed().toString()); Date date = new Date(); // given date Calendar calendar = GregorianCalendar.getInstance(); // creates a new calendar instance calendar.setTime(date); // assigns calendar to given date if (calendar.get(Calendar.HOUR_OF_DAY)>12) { return iD - o.getId(); } else { return o.getId() - iD; } } public static void main(String[] args) { System.out.println("Hello rabbit"); } }