import 'package:flutter/material.dart'; extension IsSameDay on DateTime { bool isSameDay(DateTime other) { return year == other.year && month == other.month && day == other.day; } DateTime nextWeekday(int day) { return add(Duration(days: (day - weekday) % DateTime.daysPerWeek)); } DateTime withTime(TimeOfDay time) { return copyWith(hour: time.hour, minute: time.minute); } TimeOfDay toTimeOfDay() { return TimeOfDay(hour: hour, minute: minute); } bool isSameDateTime(DateTime other) { bool isSameDay = this.isSameDay(other); bool isSameTimeOfDay = (toTimeOfDay() == other.toTimeOfDay()); return isSameDay && isSameTimeOfDay; } bool isSameOrAfter(DateTime other) { return isSameDateTime(other) || isAfter(other); } }