Bonsoir à tous,

Cela fait plusieurs jours que je cherche une réponse et malheureusement, je ne trouves pas. (je suis en bon gros début... mais je me soigne)

Le but de l'application est de calculer un temps d'utilisation/jour sur un nombre de jours.

je soustrait les compteur horaire actuelle (v3, v1) à celui de la visite précédente (v4, v2) qui s'afficher dans la variable "heure".

Je place 2 dates: celle d'aujourd'hui et une date précédente
Prenons 01/01/2024 à aujourd'hui =32 jours qui s'afficher dans la variable "nb_jour" que je dois ensuite retirer un nombre de jours de la variable "hospit".

petit problème, je me retrouves bloquer à cette étape car je ne peux pas soustraire une date à un str. (ligne 93)

J'ai testé plusieurs solutions mais rien ne rentre.
Est ce qu'il faut convertir la variable "hospit" en date, ou inversement convertir la variable "nb_jour" en int?

Est ce qu'une âme charitable peut me guider sur la voie?

Merci beaucoup,



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
from tkinter import *
from datetime import datetime, timezone
from datetime import timedelta
from datetime import date
from dateutil import parser
from tkcalendar import DateEntry

windows = Tk()

windows.title("mon appli")
windows.geometry("700x500")
windows.minsize(700, 500)
windows.config(background="light green")


# Date de visite précédente
date_vs_pre = Label(windows, text="Date visite précédente : ")
date_vs_pre.grid(row=1, column=1)
cal1 = DateEntry(windows, selectmode="day", date_pattern="dd-mm-yyyy")
cal1.grid(row=1, column=2, padx=10, pady=40)

# Compteur horaire date précédente Appareil 1
txt2 = Label(windows, text="Compteur horaire visite précédente \n Appareil 1 : ")
v1= StringVar(value="0")
entr2 = Entry(windows,textvariable=v1).grid(row=2, column=2, padx=10, pady=15)
txt2.grid(row=2, column=1)


# Compteur horaire date précédente Appareil 2
txt3 = Label(windows, text="Compteur horaire visite précédente \n Appareil 2 : ")
v2= StringVar(value="0")
entr3 = Entry(windows,textvariable=v2).grid(row=3, column=2, padx=10, pady=15)
txt3.grid(row=3, column=1)


# Date de visite actuelle
date_vs_auj = Label(windows, text="Date visite actuelle : ")
date_vs_auj.grid(row=1, column=4)
cal2 = DateEntry(windows, selectmode="day", date_pattern="dd-mm-yyyy")
cal2.grid(row=1, column=5, padx=10, pady=40)

# Compteur horaire visite actuelle 1
txt5 = Label(windows, text="Compteur horaire visite actuelle \n Appareil 1 : ")
v3= StringVar(value="0")
entr5 = Entry(windows,textvariable=v3).grid(row=2, column=5, padx=10, pady=10)
txt5.grid(row=2, column=4)


# Compteur horaire visite actuelle 2
txt6 = Label(windows, text="Compteur horaire visite actuelle \n Appareil 2 : ")
v4= StringVar(value="0")
entr6 = Entry(windows,textvariable=v4).grid(row=3, column=5, padx=10, pady=10)
txt6.grid(row=3, column=4)


# Nombre de jours d'hospitalisation
hospit = Label(windows, text="Nombre de jours d'hospitalisation : ")
v5= StringVar(value="0")
entr7 = Entry(windows, textvariable=v5).grid(row=4, column=2, padx=10, pady=20)
hospit.grid(row=4, column=1)


# Nombre de jours sur la période
nb_jour = Label(windows, text="Nombre de jours d'utilisation  : ")
vjour= StringVar()
entr8 = Entry(windows,textvariable=vjour).grid(row=4, column=5, padx=10, pady=20)
nb_jour.grid(row=4, column=4)


# Calcul nombre d'heures totales d'utilisation
heure = Label(windows, text="Nombres totales d'heure")
v6= StringVar(value="0")
entr9 = Entry(windows,textvariable=v6).grid(row=5, column=2, padx=10, pady=20)
heure.grid(row=5, column=1)


#calcul entre 2 dates
b1=Button(windows,text="Calcul", command=lambda :[sum(), my_upd()]).grid(row=8, column=2)

def sum():
    a= int(v3.get())
    b=int(v1.get())
    c=int(v4.get())
    d=int(v2.get())
    e= a-b
    f=c-d
    g=e+f
    v6.set(g)


def my_upd():
    diff = (cal2.get_date()-cal1.get_date()).days
    date_hosp= diff-v5
    vjour.set(diff)




windows.mainloop()

Je m'excuse pour le code qui peut être un poil violent pour les plus aguerri