Browse Source

Prise en compte du jour

Arthur Brandao 5 years ago
parent
commit
91febd1211
1 changed files with 31 additions and 2 deletions
  1. 31 2
      src/microfolie/service/FrequentationService.java

+ 31 - 2
src/microfolie/service/FrequentationService.java

@@ -1,5 +1,6 @@
 package microfolie.service;
 
+import java.util.Calendar;
 import java.util.Date;
 
 import microfolie.persistance.entity.Espace;
@@ -25,8 +26,9 @@ public class FrequentationService {
 		Usager usager = usagerTable.getByCode(codeUsager);
 		Espace espace = espaceTable.getByCode(codeEspace);
 		Frequentation frequentation = table.getByUsagerAndEspace(usager.id, espace.id);
-		// Ajout en base si introuvable
-		if (frequentation == null) {
+		// Ajout en base si introuvable ou si il ne date pas d'ajourd'hui
+		Date aujourdhui = new Date();
+		if (frequentation == null || compareDate(frequentation.date, aujourdhui) < 0) {
 			frequentation = new Frequentation();
 			frequentation.usager = usager;
 			frequentation.espace = espace;
@@ -38,6 +40,33 @@ public class FrequentationService {
 		return false;
 	}
 	
+	/**
+	 * Compare deux dates
+	 * @param date1
+	 * @param date2
+	 * @return 0 si les dates sont égales, < 0 si date1 est avant date2, > 0 si date1 est apres date2
+	 */
+	private long compareDate(Date date1, Date date2) {
+		// Transformation date1
+		Calendar cal1 = Calendar.getInstance();
+		cal1.setTime(date1);
+		cal1.set(Calendar.HOUR_OF_DAY, 0);
+		cal1.set(Calendar.MINUTE, 0);
+		cal1.set(Calendar.SECOND, 0);
+		cal1.set(Calendar.MILLISECOND, 0);
+		long time1 = cal1.getTimeInMillis();
+		// Transformation date2
+		Calendar cal2 = Calendar.getInstance();
+		cal2.setTime(date2);
+		cal2.set(Calendar.HOUR_OF_DAY, 0);
+		cal2.set(Calendar.MINUTE, 0);
+		cal2.set(Calendar.SECOND, 0);
+		cal2.set(Calendar.MILLISECOND, 0);
+		long time2 = cal2.getTimeInMillis();
+		// Comparaison
+		return time1 - time2;
+	}
+	
 	public static FrequentationService getInstance() {
 		if (instance == null) {
 			instance = new FrequentationService();