Python - Duda Fechas Python

 
Vista:

Duda Fechas Python

Publicado por Wild (3 intervenciones) el 24/04/2020 14:29:22
La cuestion es que me sale error al introducir las fechas por teclado, he probado datetime.strptime(variable_de_la_hora, el_formato_de_la_hora). Pero sigue sin funcionar.

Lo que quiero es que yo le paso dos fechas, y si la fecha del paciente esta entre estas dos , entre en el if.

Gracias como siempre por la ayuda!


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
from datetime import datetime, date, time, timedelta
 
def dades():
 
    hospital = {'47123321A': ['Joan Cruz', '01123456742', date(2020, 2, 2), 's'],
            '47675398SS': ['Marta Gonzalez', '97656432121', date(2020, 2, 2), 'n']
            }
    return hospital
#Toma las fechas pasadas por teclado, y si la fecha del paciente esta entre estas dos que paso yo entra en el if
def radiografiesTemps(datainici,datafinal,hospital):
    for i in hospital:
        for j in hospital[i]:
            if datainici < hospital[i][2] and hospital[i][2] < datafinal:
                print("Nom",hospital[i][0])
 
def dadesPacient(numsegsocial,hospital):
 
    hospital=dades()
 
    for i in hospital:
        for j in hospital[i]:
            if numsegsocial == j:
                print("Nom: ",hospital[i][0])
                print("Data d'ingrés a l'hospital: ",hospital[i][2])
                if hospital[i][3] == 's':
                    print("L'hi han fet radiografies")
                else:
                    print("No l'hi han fet radiografies")
 
 
def main():
    hospital=dades()
    numsegsocial = (input("Introdueix el numero de la SS: "))
    dadesPacient(numsegsocial,hospital)
    #Introduzco las fechas
    datainici= input("Introdueix la data d'inici: ")
    datainici=date()
    datafinal= input("Introdueix la data final: ")
    datainici=date()
    radiografiesTemps(datainici,datafinal,hospital)
    #print(datainici)
 
 
 
if __name__=="__main__":
    main()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda Fechas Python

Publicado por tincopasan (1082 intervenciones) el 24/04/2020 17:02:10
es muy fácil trabajar con fechas y hay mucha documentación, pero se ve que no tenés ganas de mejorar y estás encaprichado en trabajar de esa forma, ya te dije antes que hospital es un diccionario, y lo estás tratando como una lista, de la forma en que lo haces, cuando aumenten los registros o los datos de cada registros te vas a aburrir de esperar, ya que el bucle que usas recorre elemento a elemento innecesariamente y sobre la fecha:¿para qué guardarla como fecha? si es una simple cadena para comparar. en fin , python trae mucha documentación sobre date, como ejemplo hace un print solamente de:

1
datainici=date(2020,2,2)
lo que está en parentesís es lo que tiene que devolver el input

con eso verás basicamente el formato que necesitas y lo que devuelve y sino

1
2
fecha = '20/2/2'     # otro formato (por el input)
datainici = datetime.strptime(strDate, '%y/%m/%d')
pero fijate que no es lo que te dará la solución, falta un paso todavía

Como ya dije, además de la documentación hay cientos de tutoriales de esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Duda Fechas Python

Publicado por algoritmo (245 intervenciones) el 24/04/2020 17:05:28
Hola

Intenta tratando las fechas que introduces así:

1
2
3
4
5
6
7
8
9
10
11
12
import datetime
 
while True:
	datainici= input("Introduce fecha separada por /: ")
	try:
		dia, mes, ano = datainici.split('/')
		datainici = datetime.date(int(ano), int(mes), int(dia))
		break
	except:
		print 'Introduce fecha correcta: dd/mm/aaaa'
 
# dataini ya es una fecha

Espero que te sirva :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar