Je ne sais pas comment vérifier si la variable datetime est aujourd'hui, demain ou hier.

Je n'ai pas trouvé de méthode dans les membres de la classe.

7
Giacomo M 27 janv. 2019 à 21:27

3 réponses

Meilleure réponse
final now = DateTime.now();
final today = DateTime(now.year, now.month, now.day);
final yesterday = DateTime(now.year, now.month, now.day - 1);
final tomorrow = DateTime(now.year, now.month, now.day + 1);

final aDateTime = ...
final aDate = DateTime(dateToCheck.year, dateToCheck.month, dateToCheck.day);
if(aDate == today) {
  ...
} else (aDate == yesterday) {
  ...
} else (aDate == tomorrow) {
  ...
}

Hit: now.day - 1 et now.day + 1 fonctionne bien avec les dates qui aboutissent à une année ou un mois différent.

10
Günter Zöchbauer 27 janv. 2019 à 18:34

Celui-ci fera également le travail

 String checkDate(String dateString){

   //  example, dateString = "2020-01-26";

   DateTime checkedTime= DateTime.parse(dateString);
   DateTime currentTime= DateTime.now();

   if((currentTime.year == checkedTime.year)
          && (currentTime.month == checkedTime.month)
              && (currentTime.day == checkedTime.day))
     {
        return "TODAY";

     }
   else if((currentTime.year == checkedTime.year)
              && (currentTime.month == checkedTime.month))
     {
         if((currentTime.day - checkedTime.day) == 1){
           return "YESTERDAY";
         }else if((currentTime.day - checkedTime.day) == -1){
            return "TOMORROW";
         }else{
            return dateString;
         }

     }

 }
0
Charden Daxicen 26 janv. 2020 à 18:05

Un simple contrôle isToday:

bool isToday(DateTime date) {
  final now = DateTime.now();
  final diff = now.difference(date).inDays;
  return diff == 0 && now.day == date.day;
}
-1
Andrey Gordeev 13 févr. 2020 à 17:11