# Event Date Time zone
# Date: December 2022
# Author: Codelaby
# Webpage: codelaby.es
# Follow me: twitter @codelaby
import datetime
from dateutil.tz import gettz
class RegionTZ:
def __init__(self, name, tz, flag=None):
self.name = name
self.tz = gettz(tz.strip())
if flag is None:
flag = self.name
self.flag = flag
self.dateTime = None
self.time = None
list = []
# For get TimeZone from Spain go to https://[Log in to view URL]
# in 'Zona Horaria' is the time zone string: Europe/Madrid
# For get a emoji flag, search in google: emoji flag <country name>
# copy paste in third param
# Spanish speaking countries/regions
list.append(RegionTZ('Spain', 'Europe/Madrid', '🇪🇸' ))
list.append(RegionTZ('Islas Canarias', 'Atlantic/Canary', '🇮🇨' ))
list.append(RegionTZ('México', 'America/Mexico_City', '🇲🇽' ))
list.append(RegionTZ('Colombia', 'America/Bogota', '🇨🇴' ))
list.append(RegionTZ('Argentina', 'America/Argentina/Buenos_Aires', '🇦🇷' ))
list.append(RegionTZ('Peru', 'America/Lima', '🇵🇪' ))
list.append(RegionTZ('Venezuela', 'America/Caracas', '🇻🇪' ))
list.append(RegionTZ('Chile', 'America/Santiago', '🇨🇱' ))
list.append(RegionTZ('Guatemala', 'America/Guatemala', '🇬🇹' ))
list.append(RegionTZ('Ecuador', 'America/Guayaquil', '🇪🇨' ))
list.append(RegionTZ('Cuba', 'America/Havana', '🇨🇺' ))
list.append(RegionTZ('Bolivia', 'America/La_Paz', '🇧🇴' ))
list.append(RegionTZ('República Dominicana', 'America/Santo_Domingo', '🇩🇴' ))
list.append(RegionTZ('Honduras', 'America/Tegucigalpa', '🇭🇳' ))
list.append(RegionTZ('El Salvador', 'America/El_Salvador', '🇸🇻' ))
list.append(RegionTZ('Paraguay', 'America/Asuncion', '🇵🇾' ))
list.append(RegionTZ('Nicaragua', 'America/Managua', '🇳🇮' ))
list.append(RegionTZ('Costa Rica', 'America/Costa_Rica', '🇨🇷' ))
list.append(RegionTZ('Panamá', 'America/Panama', '🇵🇦' ))
list.append(RegionTZ('Puerto Rico', 'America/Puerto_Rico', '🇵🇷' ))
list.append(RegionTZ('Uruguay', 'America/Montevideo', '🇺🇾' ))
# Others regions
list.append(RegionTZ('Brasil', 'America/Sao_Paulo', '🇧🇷' ))
list.append(RegionTZ('Portugal', 'Europe/Lisbon', '🇵🇹' ))
list.append(RegionTZ('Marruecos', 'Africa/Casablanca', '🇲🇦' ))
list.append(RegionTZ('Andorra', 'Europe/Andorra', '🇦🇩' ))
list.append(RegionTZ('Gibraltar', 'Europe/Gibraltar', '🇬🇮' ))
list.append(RegionTZ('Italia', 'Europe/Rome', '🇮🇹' ))
list.append(RegionTZ('Los Angeles', 'America/Los_Angeles', '🇺🇸' ))
# Time Date Formats
t12h = '%I:%M %p' #05:00 PM
tc12h = '%I %p' #5 PM
t24h = '%H:%M' #17:00
tc24h = '%HH' #17H
dt1 = '%Y-%m-%d' #2023-01-25
dt2 = '%d-%m-%Y' #25-01-2023
dt3 = '%d %b %Y' #24 Jan 2023
#================= Edit Zone =================
# For get TimeZone from Madrid go to https://[Log in to view URL]
# in 'Zona Horaria' is the time zone string: Europe/Madrid
# Set the event date in format Year, Month, Day, Hour, Minute, Second
# Create Event Date Time
event_tz = gettz('Europe/Madrid')
eventDate = datetime.datetime(
2023, 1, 8, 17, 0, 0, #YYYY,M,D,H,M,S
tzinfo=event_tz)
# Set output format for date and times
timeOut = tc24h
dateOut = dt2
#=============================================
# Make TimeTable
for row in list:
row.datetime = eventDate.astimezone(row.tz).strftime('%Y-%m-%d %H:%M')
#print(row.flag, row.time )
timeList = sorted(set(map(lambda n: n.datetime, list)))
print('Event date:', eventDate)
header = None
for t in timeList:
gList = filter(lambda x: x.datetime == t, list)
arr = map(lambda x: x.flag, gList)
flags = ''.join(arr)
dtObj = datetime.datetime.strptime(t, '%Y-%m-%d %H:%M')
if (header != dtObj.strftime(dateOut)):
header = dtObj.strftime(dateOut)
print()
print(header)
print(dtObj.strftime(timeOut), '- ' + flags ) # time and flags
To embed this project on your website, copy the following code and paste it into your website's HTML: