beta
authornicola <nicola@nicola-desktop.(none)>
Tue, 8 Dec 2009 13:28:40 +0000 (14:28 +0100)
committernicola <nicola@nicola-desktop.(none)>
Tue, 8 Dec 2009 13:28:40 +0000 (14:28 +0100)
badgedata.cpp

index 085d01e..442c5d0 100644 (file)
@@ -5,8 +5,7 @@
 
 BadgeData::BadgeData()
 {
-    // se il file non esiste crealo per tutto l'anno
-    // se esiste, ma non c'e' nulla per questo anno, crea tutto l'anno
+
 }
 
 bool BadgeData::setTimetable(TimeTable tt)
@@ -22,7 +21,7 @@ bool BadgeData::setTimetable(TimeTable tt)
         out >> dum;
         if (dum.day == tt.day) {
             data.seek(pos);
-            //tt = dum;
+
             out << tt;
             data.close();
             return true;
@@ -56,7 +55,35 @@ bool BadgeData::getTimetable(TimeTable &tt)
     return false;
 }
 
-int BadgeData::totalHours(QDate begin, QDate end)
+QTime BadgeData::totalTime(QDate begin, QDate end)
 {
-    return 0;
+    QFile data;
+    TimeTable dum;
+    QTime total(0, 0, 0, 0);
+
+    int totalInSeconds = 0;
+
+    data.setFileName(QDir::homePath() + QDir::separator() + "badge.data");
+    data.open(QIODevice::ReadOnly);
+    QDataStream out(&data);
+    while (!data.atEnd()) {
+        out >> dum;
+        if (dum.day >=  begin && dum.day <= end) {
+            totalInSeconds += dum.entrance.secsTo(dum.exit);
+            if (dum.firstPause != dum.endFirstPause) {
+                totalInSeconds -= dum.firstPause.secsTo(dum.endFirstPause);
+            }
+
+            if (dum.secondPause != dum.endSecondPause) {
+                totalInSeconds -= dum.secondPause.secsTo(dum.endSecondPause);
+            }
+
+
+
+        }
+
+    }
+    data.close();
+    total.setHMS((int)(totalInSeconds / 3600), (int) ((totalInSeconds % 3600) / 60), 0);
+    return total;
 }