Dart & Flutter/Widget & Package

month의 week number를 계산하는 extention

낭초비 2022. 8. 9. 09:14
반응형

DateTime extention 으로 사용

 

DateTime.weekday

DateTime.monday = 1

DateTime.tuesday = 2

DateTime.wednesday = 3

DateTime.thursday = 4

DateTime.friday = 5

DateTime.saturday= 6

DateTime.sunday = 7

 

 

 

한주의 시작이 월요일 이라면

extension DateTimeExtension on DateTime {
  int get weekOfMonth {
    var date = this;
    final firstDayOfTheMonth = DateTime(date.year, date.month, 1);
    int sum = firstDayOfTheMonth.weekday - 1 + date.day;
    if (sum % 7 == 0) {
      return sum ~/ 7;
    } else {
      return sum ~/ 7 + 1;
    }
  }
}

 

한주의 시작이 일요일 이라면, (sum에서 -1 부분을 빼버리면 됨)

extension DateTimeExtension on DateTime {
  int get weekOfMonth {
    var date = this;
    final firstDayOfTheMonth = DateTime(date.year, date.month, 1);
    int sum = firstDayOfTheMonth.weekday  + date.day;
    if (sum % 7 == 0) {
      return sum ~/ 7;
    } else {
      return sum ~/ 7 + 1;
    }
  }
}
반응형