Compare commits
No commits in common. "lab-2" and "main" have entirely different histories.
86
main.dart
86
main.dart
@ -1,86 +0,0 @@
|
|||||||
enum DeadlineStatus {
|
|
||||||
HOT,
|
|
||||||
WARM,
|
|
||||||
COLD,
|
|
||||||
FROZEN;
|
|
||||||
|
|
||||||
String get translate {
|
|
||||||
switch (this) {
|
|
||||||
case DeadlineStatus.HOT:
|
|
||||||
return 'КАК ТАК ЗАВТРА!?';
|
|
||||||
case DeadlineStatus.WARM:
|
|
||||||
return 'К чему торопиться?';
|
|
||||||
case DeadlineStatus.COLD:
|
|
||||||
return 'Дожить ещё надо ';
|
|
||||||
case DeadlineStatus.FROZEN:
|
|
||||||
return 'До сессии сдадим';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
extension DateTimeX on DateTime {
|
|
||||||
String getDate() {
|
|
||||||
return '${this.day}-${this.month}-${this.year}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Deadline {
|
|
||||||
final DateTime time;
|
|
||||||
final String message;
|
|
||||||
DeadlineStatus status = DeadlineStatus.COLD;
|
|
||||||
|
|
||||||
Deadline(this.time, this.message);
|
|
||||||
|
|
||||||
@override
|
|
||||||
String toString() {
|
|
||||||
return 'статус: ${status.translate}\t\tдата: ${time.getDate()}\t\tсообщение: $message ';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class Scheduler {
|
|
||||||
List<Deadline> deadlines;
|
|
||||||
|
|
||||||
Scheduler(this.deadlines);
|
|
||||||
|
|
||||||
void sort() {
|
|
||||||
deadlines.sort((a, b) => (-1) * (a.time.compareTo(b.time)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void printSchedule(DateTime today) {
|
|
||||||
sort();
|
|
||||||
print('Дедлайны:');
|
|
||||||
Future.delayed(new Duration(milliseconds: 1), () {
|
|
||||||
print('Сегодня ${today.getDate()}');
|
|
||||||
});
|
|
||||||
for (Deadline deadline in deadlines) {
|
|
||||||
Duration diff = deadline.time.difference(today);
|
|
||||||
int days = diff.inDays;
|
|
||||||
if (days <= 0) {
|
|
||||||
deadline.status = DeadlineStatus.FROZEN;
|
|
||||||
print('Всё, не успели \t\t$deadline');
|
|
||||||
} else if (days == 1) {
|
|
||||||
deadline.status = DeadlineStatus.HOT;
|
|
||||||
print('Остались $days сутки\t\t$deadline');
|
|
||||||
} else if (days <= 7) {
|
|
||||||
deadline.status = DeadlineStatus.WARM;
|
|
||||||
print('Осталось $days суток\t\t$deadline');
|
|
||||||
} else {
|
|
||||||
deadline.status = DeadlineStatus.COLD;
|
|
||||||
print('Осталось $days суток\t\t$deadline');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
DateTime today = DateTime(2024, 9, 23);
|
|
||||||
var opp =
|
|
||||||
new Deadline(new DateTime(2024, 9, 24), "право: конспект по лекции 1");
|
|
||||||
var mdp = new Deadline(new DateTime(2024, 9, 26), "мобилки: лаб 1-2");
|
|
||||||
var macd = new Deadline(new DateTime(2024, 9, 20), "миакд: лаб 4-6");
|
|
||||||
var sistAn =
|
|
||||||
new Deadline(new DateTime(2024, 10, 3), "системный анализ: лаб 1-2");
|
|
||||||
List<Deadline> deadlines = [opp, mdp, macd, sistAn];
|
|
||||||
var scheduler = new Scheduler(deadlines);
|
|
||||||
scheduler.printSchedule(today);
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user