Vers le code

Reprenez le diagramme de classes et pour les classes qui sont utilisées dans le test, générer et complétez l'implémentation.

Voici un exemple de tests que vous pouvez faire :

public class TestValidation {
 
	public static void main(String[] args) {
		//(il y en a 4, ordonnés dans l'ordre chronologique des anniversaires : Hercule, Geek00, D.D., Yvette), celui de Hercule.
		Birthday aBirthday = new Birthday(LocalDate.of(2000, 02, 12),"a'");
		Birthday bBirthday = new Birthday(LocalDate.of(2000, 04, 12),"b'");
		Birthday herculeBirthday = new Birthday(LocalDate.of(2000, 02, 18),"Hercule'");
		Birthday geekBirthday = new Birthday(LocalDate.of(2000, 02, 19),"Geek00'");
		Birthday dDBirthday = new Birthday(LocalDate.of(2000, 02, 20),"D.D'");
		Birthday yvetteBirthday = new Birthday(LocalDate.of(2000, 03, 1),"Yvette'");
		List<Birthday> birthdayList = 
				new ArrayList<>(Arrays.asList(herculeBirthday, geekBirthday,dDBirthday,yvetteBirthday, aBirthday, bBirthday));
		birthdayList.removeIf( (b -> ( (b.numberOfDaysAfterToday()<0) || 
				               (b.numberOfDaysAfterToday()>15) ) ) )  ;
 
		System.out.println(birthdayList);
 
 
		////Pénélope sélectionne parmi les anniversaires qui lui sont proposés pour les 15 jours à venir 
		//Elle écrit : “Bon anniversaire ! “
		Message message = new Message(geekBirthday, "Bon anniversaire");
		System.out.println(message);
		System.out.println(geekBirthday);
 
 
	}

et pour comparer des dates si besoin (Attention, ce n'est pas la classe Birthday compléte, juste quelques éléments pour vous aider) :

import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
 
public class Birthday {
	private LocalDate aDate;
	private String aName;
 
	public Birthday(LocalDate pDate, String pName) {
		aDate = pDate;
		aName = pName;
	}
 
	public int numberOfDaysAfterToday() {
		LocalDate now = LocalDate.now();
		LocalDate thisYearDate = LocalDate.of(now.getYear(), aDate.getMonth(), aDate.getDayOfMonth());
		return (int) ChronoUnit.DAYS.between(now, thisYearDate);
	}