Skip to content

Instantly share code, notes, and snippets.

@AyeshaIftikhar
Created January 5, 2023 05:38
Show Gist options
  • Save AyeshaIftikhar/c2a024e94f3c4e452842b4dca26c4f08 to your computer and use it in GitHub Desktop.
Save AyeshaIftikhar/c2a024e94f3c4e452842b4dca26c4f08 to your computer and use it in GitHub Desktop.
exquisite-osmium-3856

exquisite-osmium-3856

Created with <3 with dartpad.dev.

main() {
print('First Date: ${findFirstDateOfTheWeek(DateTime.now())}');
print('Last Date: ${findLastDateOfTheWeek(DateTime.now())}');
print('First Date of Previous Week: ${findFirstDateOfPreviousWeek(DateTime.now())}');
}
/// Current Week
DateTime findFirstDateOfTheWeek(DateTime dateTime) {
return dateTime.subtract(Duration(days: dateTime.weekday - 1));
}
DateTime findLastDateOfTheWeek(DateTime dateTime) {
return dateTime.add(Duration(days: DateTime.daysPerWeek - dateTime.weekday));
}
/// Previous Week
/// Find first date of previous week using a date in current week.
/// [dateTime] A date in current week.
DateTime findFirstDateOfPreviousWeek(DateTime dateTime) {
final DateTime sameWeekDayOfLastWeek =
dateTime.subtract(const Duration(days: 7));
return findFirstDateOfTheWeek(sameWeekDayOfLastWeek);
}
/// Find last date of previous week using a date in current week.
/// [dateTime] A date in current week.
DateTime findLastDateOfPreviousWeek(DateTime dateTime) {
final DateTime sameWeekDayOfLastWeek =
dateTime.subtract(const Duration(days: 7));
return findLastDateOfTheWeek(sameWeekDayOfLastWeek);
}
/// Next Week
/// Find first date of next week using a date in current week.
/// [dateTime] A date in current week.
DateTime findFirstDateOfNextWeek(DateTime dateTime) {
final DateTime sameWeekDayOfNextWeek = dateTime.add(const Duration(days: 7));
return findFirstDateOfTheWeek(sameWeekDayOfNextWeek);
}
/// Find last date of next week using a date in current week.
/// [dateTime] A date in current week.
DateTime findLastDateOfNextWeek(DateTime dateTime) {
final DateTime sameWeekDayOfNextWeek = dateTime.add(const Duration(days: 7));
return findLastDateOfTheWeek(sameWeekDayOfNextWeek);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment