Esto es la forma que he encontrado para sacar la
hora internet y de esa forma saber a que hora empieza, sin pensar en usos horarios. Lo único que hay que hacer es editar el código, la parte de Configuración, para poner la hora local de comienzo y la zona horaria donde está el conferenciante, y la zona horaria del oyente, si no está en la lista. Se ejecuta el programa y listo.
Using perl Syntax Highlighting
#!/usr/bin/perl -l
use DateTime
;
### Configuración ###
my $fecha = "05/07/2006 17:00"; # Hora local del tutorial
my $zona_tutor = "America/Mexico_City"; # Zona horaria del tutor
# Zonas horarias de los oyentes
my @zona_local = qw"
America/Argentina/Buenos_Aires
America/Aruba
America/Asuncion
America/Bahia
America/Bogota
America/Cancun
America/Caracas
America/Costa_Rica
America/Dominica
America/El_Salvador
America/Fortaleza
America/Guadeloupe
America/Guatemala
America/Guayaquil
America/Guyana
America/Havana
America/Hermosillo
America/La_Paz
America/Lima
America/Los_Angeles
America/Managua
America/Mexico_City
America/Montevideo
America/New_York
America/Panama
America/Paramaribo
America/Puerto_Rico
America/Recife
America/Regina
America/Santiago
America/Santo_Domingo
America/Sao_Paulo
America/Tegucigalpa
America/Tijuana
Europe/Madrid
";
### Fin ###
my ($dia, $mes, $anno, $hora, $minuto) = $fecha =~ /(\d+)/g;
# Hora local del tutorial
my $tutorial = DateTime
->new(
day
=> $dia,
month
=> $mes,
year
=> $anno,
hour
=> $hora,
minute
=> $minuto,
time_zone
=> $zona_tutor,
);
print "Hora tutorial: $tutorial - $zona_tutor";
# Hora GMT
my $gmt = $tutorial
->clone
->set_time_zone('GMT');
print 'Hora GMT : ' . $gmt;
# Hora local del oyente
my $local = $gmt->clone;
foreach my $zona_local ( @zona_local ) {
$local->set_time_zone($zona_local);
print "Hora local : $local - $zona_local";
}
# Hora de internet
my $internet = $tutorial
->clone
->add( hours
=> 1
)
->epoch;
print 'Hora internet: @' . sprintf "%5.1f", ($internet % 86400
) / 86
.4
;
__OUTPUT__
Hora tutorial
: 2006
-07
-05T17
:00
:00
- America
/Mexico_City
Hora GMT
: 2006
-07
-05T22
:00
:00
Hora
local : 2006
-07
-05T19
:00
:00
- America
/Argentina
/Buenos_Aires
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Aruba
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Asuncion
Hora
local : 2006
-07
-05T19
:00
:00
- America
/Bahia
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Bogota
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Cancun
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Caracas
Hora
local : 2006
-07
-05T16
:00
:00
- America
/Costa_Rica
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Dominica
Hora
local : 2006
-07
-05T16
:00
:00
- America
/El_Salvador
Hora
local : 2006
-07
-05T19
:00
:00
- America
/Fortaleza
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Guadeloupe
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Guatemala
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Guayaquil
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Guyana
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Havana
Hora
local : 2006
-07
-05T15
:00
:00
- America
/Hermosillo
Hora
local : 2006
-07
-05T18
:00
:00
- America
/La_Paz
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Lima
Hora
local : 2006
-07
-05T15
:00
:00
- America
/Los_Angeles
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Managua
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Mexico_City
Hora
local : 2006
-07
-05T19
:00
:00
- America
/Montevideo
Hora
local : 2006
-07
-05T18
:00
:00
- America
/New_York
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Panama
Hora
local : 2006
-07
-05T19
:00
:00
- America
/Paramaribo
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Puerto_Rico
Hora
local : 2006
-07
-05T19
:00
:00
- America
/Recife
Hora
local : 2006
-07
-05T16
:00
:00
- America
/Regina
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Santiago
Hora
local : 2006
-07
-05T18
:00
:00
- America
/Santo_Domingo
Hora
local : 2006
-07
-05T19
:00
:00
- America
/Sao_Paulo
Hora
local : 2006
-07
-05T17
:00
:00
- America
/Tegucigalpa
Hora
local : 2006
-07
-05T15
:00
:00
- America
/Tijuana
Hora
local : 2006-07
-06T00
:00
:00
- Europe
/Madrid
Hora internet
: @958.3Coloreado en 0.006 segundos, usando
GeSHi 1.0.8.4
La lista de zonas horarias disponibles se puede sacar con el siguiente una-línea:
Using bash Syntax Highlighting
perl -le 'use DateTime::TimeZone; print join "\n",@DateTime::TimeZone::ALL;'Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Relojes que marquen la hora internet hay unos cuántos:
http://www.panaga.com/clocks/clocks.htm (sección alternativos). Por ejemplo:
http://www.artefakt.com/projects/ibeat/