Python: obtenga el mes del año y el día de la semana

Dado un año y un día de la semana, la tarea es escribir un programa en Python para obtener un mes y una semana.

Ejemplo:

Input : test_year = 1997, test_week = 27
Output : 1997-07-07 00:00:00
Explanation : 27th Week starts from 7 july in 1997.

Input : test_year = 2021, test_week = 27
Output : 2021-07-05 00:00:00
Explanation : 27th Week starts from 5 july in 2021.

Método #1: Usar %W, %w

Analizar la fecha con %W nos establece para comenzar la semana, además, %w obtiene el día de la semana requerido, usaremos el valor predeterminado 1. Se puede modificar según los requisitos.

Python3

# Python3 code to demonstrate working of
# Start week from year and weekday
# Using %W, %w
from datetime import datetime, timedelta
 
# initializing year
test_year = 1997
 
# initializing week
test_week = 27
              
# printing original date
print("The original year, week is : " + str(test_year) + " " + str(test_week))
 
date = str(test_year) + '-W' + str(test_week)
 
# getting date
res = datetime.strptime(date + '-1', "%Y-W%W-%w")
 
# printing result
print("The starting date of week : " + str(res))

Producción:

The original year, week is : 1997 27
The starting date of week : 1997-07-07 00:00:00

Método n.° 2: Usar la relación delta()

Esto solo agrega semanas requeridas al año requerido y obtiene la fecha inicial requerida. Esto agrega semanas, por lo tanto, podría dar cualquier día de la semana dependiendo de la fecha de inicio del año. 

Python3

# Python3 code to demonstrate working of
# Start week from year and weekday
# Using relativedelta()
import datetime
from dateutil.relativedelta import relativedelta
 
# initializing year
test_year = 1997
 
# initializing week
test_week = 27
              
# printing original date
print("The original year, week is : " + str(test_year) + " " + str(test_week))
 
# constructing date
date = datetime.date(test_year, 1, 1)
 
# getting date by adding weeks to year beg.
# prints 9 July. as 1 jan was wednesday, 27th
# weeks beginning is from wed.
res = date + relativedelta(weeks = +test_week)
 
# printing result
print("The starting date of week : " + str(res))

Producción:

The original year, week is : 1997 27
The starting date of week : 1997-07-09

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *