]> gitweb.pimeys.fr Git - scripts-20-100.git/commitdiff
On fournit la date de fin
authorVincent Le Gallic <legallic@crans.org>
Thu, 18 Feb 2016 10:14:20 +0000 (11:14 +0100)
committerVincent Le Gallic <legallic@crans.org>
Fri, 11 Mar 2016 04:41:28 +0000 (05:41 +0100)
Comme ça, plus de problème si on fait un bilan un 1er du mois
ça marche pour tout, plus de hack.

Et ça permet de faire un bilan sur légèrement plus de 365 jours si on veut

sum_transacs_by_categorie.py

index 900ed808b989030c3a0e730e8f02aeb1085f2a3e..39dfb67569e4356564ccf42e5d3b0b44e0980d16 100755 (executable)
@@ -37,16 +37,23 @@ def get_sum(descriptions, debut, fin):
     s = cur.fetchone()["s"] or 0
     return s
 
-def get_dates(y, m, d):
+def get_dates(y, m, d, yf, mf, df):
     """
     Donne les dates de découpage de ``d``/``m``/``y`` à ``d-1``/``m``/``y+1``.
     """
-    dates = ["%s-%s-%s" % (y, m, d)]
-    for i in range(m + 1, 13):
-        dates.append("%s-%s-01" % (y, i))
-    for i in range(1, m):
-        dates.append("%s-%s-01" % (y + 1, i))
-    dates.append("%s-%s-%s" % (y + 1, m, d - 1))
+    dates = ["%d-%02d-%02d" % (y, m, d)]
+    m += 1
+    if m == 13:
+        m = 1
+        y += 1
+    while (y, m) <= (yf, mf):
+        dates.append("%d-%02d-01" % (y, m))
+        m += 1
+        if m == 13:
+            m = 1
+            y += 1
+    # On a atteint le dernier mois
+    dates.append("%d-%02d-%02d" % (yf, mf, df))
     return dates
 
 def get_year_sums(dates, filename):
@@ -65,7 +72,8 @@ if __name__ == "__main__":
     filenames = sys.argv[1:]
     print filenames
     y, m, d = 2015, 2, 16
-    dates = get_dates(y, m, d)
+    yf, mf, df = 2016, 2, 18
+    dates = get_dates(y, m, d, yf, mf, df)
     ys = {}
     for fn in filenames:
         ys[fn] = get_year_sums(dates, fn)
@@ -79,7 +87,7 @@ if __name__ == "__main__":
         )
 
     print "totaux"
-    print "%s-%s-%s\t %s-%s-%s\t %s" % (y, m, d, y+1, m, d-1,
+    print "%s-%s-%s\t %s-%s-%s\t %s" % (y, m, d, yf, mf, df,
         "\t".join([str(sum(ys[fn])) for fn in filenames]),)
     print "total"
     print str(sum([sum(ys[fn]) for fn in filenames]))