[AYUDA][PYTHON] Como saber dia de la semana

Iniciado por Noxware, 28 Septiembre 2014, 00:39 AM

0 Miembros y 1 Visitante están viendo este tema.

Noxware

hola, estoy haciendo un programa q organize mis cosas de estudio para no tener q andar usando un pizarron q de por si me da flojera borrar -.-

mi problema es q necesito saber q dia de la semana es (si es lunes o martes, etc).... mi programa ya puede obtener la fecha pero necesito q mi programa sepa q dia de la semana es...... espero una solucion cualquiera q sea.... por cierto estoy usando el "Gtk.Calendar" para el almanque por si les sirve de dato adcional aunque cualquier solucion sirve :P
"La mejor forma de conocer a una persona es viendo su código... o en una partida de ajedrez...

PD: Si no tengo faltas de ortografía es porque use el autocorrector."

Eleкtro

#1
Puedes utilizar el módulo Datetime:

Código (python) [Seleccionar]
import datetime, locale

locale.setlocale(locale.LC_ALL, 'Spanish_Spain.1252')

print datetime.datetime.strptime('28-09-2014', '%d-%m-%Y').strftime('El dia es: %A')


Fecha '28-09-2014', día:



8.1.7. strftime() and strptime() Behavior

Saludos.








tincopasan

#2
yo lo hacía así:

Código (python) [Seleccionar]
import datetime
x = datetime.datetime.now()

dicdias = {'MONDAY':'Lunes','TUESDAY':'Martes','WEDNESDAY':'Miercoles','THURSDAY':'Jueves', \
'FRIDAY':'Viernes','SATURDAY':'Sabado','SUNDAY':'Domingo'}
anho = x.year
mes =  x.month
dia= x.day

fecha = datetime.date(anho, mes, dia)
print (dicdias[fecha.strftime('%A').upper()])





[MOD]: Utiliza el botón para insertar las etiquetas de código, no te las inventes // codigo ... :P

Noxware

#3
Eleкtro tu respuesta me dice q es domingo en lugar de sabado en cambio la respuesta de tincopasan me funciona a la perfeccion, gracias




me podrias explicar el codigo tincopasan, es q yo nunca uso cosas complejas (siempre voy por el camino dificil usando lo basico)
"La mejor forma de conocer a una persona es viendo su código... o en una partida de ajedrez...

PD: Si no tengo faltas de ortografía es porque use el autocorrector."

Eleкtro

#4
Es que el día 28 es Domingo, prueba a asignar el Locale correcto a tu pais/zona horaria:

Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'Spanish_Spain.1252'


O también puedes dejar el parámetro vacio en el código para asignarlo automaticamente
Código (python) [Seleccionar]
locale.setlocale(locale.LC_ALL, "")

Saludos!








daryo

#5
Cita de: Eleкtro en 28 Septiembre 2014, 04:19 AM

Código (python) [Seleccionar]
locale.setlocale(locale.LC_ALL, "")
es mejor en caso de que se ejecute en un pc de otro pais no va a servir con el spain

edito:

Código (python) [Seleccionar]
import datetime
x = datetime.datetime.now()

la fecha actual te queda en la variable x con hora fecha y segundos

puedes hacer un print x
y te dara la fecha

puedes dividir la fecha en:
Código (python) [Seleccionar]
x.year #es el anioo en ingles
x.moth el mes y asi muy simple

fecha = datetime.date(anho, mes, dia)

le da formato a la fecha
año-mes-dia

Código (python) [Seleccionar]
fecha.strftime('%A')
te devuelve el nombre del dia lunes martes etc pero en ingles asi que le asignamos un valor en
https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

español en un diccionario
Código (python) [Seleccionar]
dicdias={'MONDAY':'Lunes','TUESDAY':'Martes','WEDNESDAY':'Miercoles','THURSDAY':'Jueves', \
'FRIDAY':'Viernes','SATURDAY':'Sabado','SUNDAY':'Domingo'}


y se imprime el valor resultante el upper lo pone en minusculas
Código (python) [Seleccionar]
print (dicdias[fecha.strftime('%A').upper()])]
buenas

tincopasan

Al Mod:
              no tengo la menor idea cual es el botón para ingresar las líneas de código!

Eleкtro

Cita de: tincopasan en 28 Septiembre 2014, 05:51 AM
Al Mod:
              no tengo la menor idea cual es el botón para ingresar las líneas de código!

Mira mi firma.

saludos