Skip to content

Instantly share code, notes, and snippets.

@AlexKenbo
Created June 21, 2019 10:00
Show Gist options
  • Save AlexKenbo/94ab1e3ccc7da1022f284ebfd888149e to your computer and use it in GitHub Desktop.
Save AlexKenbo/94ab1e3ccc7da1022f284ebfd888149e to your computer and use it in GitHub Desktop.
[Dart snippets]
//Разложить отсортированные дни по неделям
Map<int,List> _createDaysByWeeks(DateTime from, DateTime to) {
/*
vacations/$ID/daysByWeeks/$weekNum/[$weekDay..]
vacations/$ID/vacationDays/$ID_DAY:true если в этом дне что-то запланированно
{
'$weekNum': ['$weekDay1','$weekDay2'],
};
*/
Map<int, List> _daysByWeeks = {
1:[]
};
int _weekNum = 1;
var _rangeDay = Utils.daysInRange(from, to.add(Duration(days:1)));
_rangeDay.forEach((d) {
//print('${d.toIso8601String()} ${d.weekday}');
final DateTime nextDay = d.add(Duration(days:1));
_daysByWeeks[_weekNum].add('${d.toIso8601String()} ${d.weekday}');
//if (Utils.isSameWeek(d, nextDay) == false) {
if (d.weekday > nextDay.weekday) { //FIX Ошибка если следующего дня нету, то неделю не создаем
_weekNum += 1;
_daysByWeeks.putIfAbsent(_weekNum, () => []);
//print('Следующий день не на этой недели. Создаем список для следющей недели');
}
//print('\n');
});
//print(_daysByWeeks);
return _daysByWeeks;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment