lab 2 done
This commit is contained in:
commit
1fc7f83551
3
.idea/.gitignore
generated
vendored
Normal file
3
.idea/.gitignore
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
30
.idea/libraries/Dart_SDK.xml
generated
Normal file
30
.idea/libraries/Dart_SDK.xml
generated
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Dart SDK">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/async" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/cli" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/collection" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/concurrent" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/convert" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/core" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/developer" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/ffi" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/html" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/indexed_db" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/io" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/isolate" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/js" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/js_interop" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/js_interop_unsafe" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/js_util" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/math" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/mirrors" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/svg" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/typed_data" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/web_audio" />
|
||||||
|
<root url="file://$PROJECT_DIR$/../../../../dart-sdk/lib/web_gl" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</component>
|
6
.idea/misc.xml
generated
Normal file
6
.idea/misc.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/Lab2_PMU.iml" filepath="$PROJECT_DIR$/Lab2_PMU.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
9
Lab2_PMU.iml
Normal file
9
Lab2_PMU.iml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="Dart SDK" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
84
main.dart
Normal file
84
main.dart
Normal 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);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user