Compare commits

...

No commits in common. "original" and "lab2" have entirely different histories.

2 changed files with 84 additions and 0 deletions

View File

84
main.dart Normal file
View File

@ -0,0 +1,84 @@
enum BirthdayStatus {
THISYEAR,
NEAR,
NOWADAY,
NEXTYEAR;
String get translate {
switch (this) {
case BirthdayStatus.THISYEAR:
return 'Будет в этом году';
case BirthdayStatus.NEAR:
return 'Скоро день рождение ';
case BirthdayStatus.NOWADAY:
return 'Сегодня день рождение!';
case BirthdayStatus.NEXTYEAR:
return 'Будет в следующем году';
}
}
}
extension DateTimeX on DateTime {
String getDate() {
return '${this.day}-${this.month}-${this.year}';
}
}
class Birthday {
final DateTime time;
final String message;
BirthdayStatus status = BirthdayStatus.NOWADAY;
Birthday(this.time, this.message);
@override
String toString() {
return 'статус: ${status.translate}\t\tдата: ${time.getDate()}\t\tсообщение: $message ';
}
}
class Scheduler {
List<Birthday> birthdays;
Scheduler(this.birthdays);
void sort() {
birthdays.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 (Birthday deadline in birthdays) {
Duration diff = deadline.time.difference(today);
int days = diff.inDays;
if (days <= 0) {
deadline.status = BirthdayStatus.NOWADAY;
print('Сегодня день рождение \t\t$deadline');
} else if (days <= 31) {
deadline.status = BirthdayStatus.NEAR;
print('Осталось $days суток \t\t$deadline');
} else if (days <= 365) {
deadline.status = BirthdayStatus.THISYEAR;
print('Будет в этом году! \t\t$deadline');
} else {
deadline.status = BirthdayStatus.NEXTYEAR;
print('До следующего года! \t\t$deadline');
}
}
}
}
void main() {
DateTime today = DateTime(2024, 9, 23);
var father = new Birthday(new DateTime(2025, 9, 24), "Иванов И.И.");
var brother = new Birthday(new DateTime(2024, 9, 26), "Васечкин В.В.");
var cousin = new Birthday(new DateTime(2024, 9, 23), "Тарасов Т.Т.");
var friend = new Birthday(new DateTime(2025, 10, 3), "Игнатова И.И.");
List<Birthday> birthdays = [father, brother, cousin, friend];
var scheduler = new Scheduler(birthdays);
scheduler.printSchedule(today);
}