Compare commits
No commits in common. "lab2" and "original" have entirely different histories.
84
main.dart
84
main.dart
@ -1,84 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user