feat(lab2): do lab2

This commit is contained in:
Zakharov_Rostislav 2024-10-15 16:59:32 +04:00
parent 522af4f865
commit 426b2788e1

92
dart/main.dart Normal file
View File

@ -0,0 +1,92 @@
enum DeadlineStatus {
HOT,
WARM,
COLD,
FROZEN
}
extension DateTimeX on DateTime {
String getDate(){
return '${this.day}-${this.month}-${this.year}';
}
}
extension DeadlineStatusX on DeadlineStatus {
String get translate{
switch(this){
case DeadlineStatus.HOT:
return 'КАК ТАК ЗАВТРА!?';
case DeadlineStatus.WARM:
return 'К чему торопиться?';
case DeadlineStatus.COLD:
return 'Дожить ещё надо ';
case DeadlineStatus.FROZEN:
return 'До сессии сдадим';
}
}
}
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) async {
sort();
print('Дедлайны:');
await 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);
}