initial commit

This commit is contained in:
2025-08-27 13:42:07 +02:00
commit 36ae378cb9
136 changed files with 5696 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
import 'package:flutter/material.dart';
import 'work_interval.dart';
class WorkDay {
final DateTime date;
final List<WorkInterval> intervals; // bis zu 5
final String? absenceType; // Urlaub, Krank, …
final int targetMinutes; // Soll
const WorkDay({
required this.date,
required this.intervals,
required this.targetMinutes,
this.absenceType,
});
int get workedMinutes => intervals.fold(0, (sum, i) => sum + i.minutes);
int get diffMinutes => workedMinutes - targetMinutes;
}
+17
View File
@@ -0,0 +1,17 @@
import 'package:flutter/material.dart';
class WorkInterval {
final TimeOfDay start;
final TimeOfDay end;
const WorkInterval(this.start, this.end);
int get minutes {
final aMin = start.hour * 60 + start.minute;
final bMin = end.hour * 60 + end.minute;
final d = bMin - aMin;
if (d <= 0) return 0;
if (d >= 24 * 60) return 24 * 60;
return d;
}
}