CarlD Posted 12 hours ago Posted 12 hours ago (edited) Times are obtained from the server at worldtimeapi.org. expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Outfile=TimeIn.exe #AutoIt3Wrapper_UseUpx=y #AutoIt3Wrapper_UseX64=n #AutoIt3Wrapper_Run_Au3Stripper=y #AutoIt3Wrapper_AU3Check_Parameters=-w 3 -w 4 -w 5 -w 6 -d #AutoIt3Wrapper_Change2CUI=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ; #include <Date.au3> ; World Time via API at worldtimeapi.org Global $sRevDate = "[CLD rev. 2024-12-21]" ; If $CmdLine[0] = 0 Then Exit _ShowHelp() If StringInStr($CmdLine[1], "?") Then Exit _ShowHelp() Global $aData, $aDow, $aDTm, $aFrac = "", $aSubst, $aTZdata Global $bPossDST = 0, $DTadj, $DTime, $h1, $h2 Global $iDoW, $iIncr = 0, $iMatch Global $sData = "", $sDataFn = @ScriptDir & "\timedat.dat" Global $sOut = "", $sSubst, $iTmp Global $sTail = "", $sTZdata, $sWhere = "" Global $sURL = "http://worldtimeapi.org/api/timezone/" If $CmdLine[0] Then $sWhere = $CmdLineRaw If StringInStr($sWhere, " ") Then $sWhere = StringReplace($sWhere, " ", "_") If StringInStr($sWhere, ".") Then $sWhere = StringReplace($sWhere, ".", "") If StringInStr($sWhere, "UTC+") Then $sWhere = StringReplace($sWhere, "UTC+", "GMT+") If StringInStr($sWhere, "UTC-") Then $sWhere = StringReplace($sWhere, "UTC-", "GMT-") If StringInStr($sWhere, "GMT+") Then $sWhere = StringReplace($sWhere, "GMT+", "GMT-") If StringInStr($sWhere, "GMT-") Then $sWhere = StringReplace($sWhere, "GMT-", "GMT+") ; Substitution table ; GMT offsets use opposite sign -/+ (quirk of WorldTimeAPI data format) $sSubst = "EST5EDT,Washington,Washington_DC,DC,Miami,Atlanta,Boston,Philadelphia,|CST6CDT,New_Orleans,Minneapolis,Kansas_City,Oklahoma_City,Dallas,Houston,|MST7MDT,Salt_Lake_City,|PST8PDT,San_Diego,San_Francisco,Las_Vegas,Seattle,|GMT,Reykjavik,Douglas,Bamako,Timbuktu,Nouakchott,Jamestown,Dakar,Freetown,Lomé,Greenwich,Edinburgh,Cardiff,Suva,Majuro,Yaren,Pevek,Petropavlovsk-Kamchatsky,Ouagadougou,Funafuti,Wake_Island,Yamoussoukro,Torshavn,Tórshavn,Banjul,Accra,Conakry,|GMT-1,Tirana,Luanda,Porto_Novo,Sarajevo,Yaounde,Yaoundé,Bangui,N'Djamena,Brazzaville,Kinshasa,Zagreb,Copenhagen,Malabo,Libreville,Frankfurt,Luxembourg,Vaduz,Valletta,Monaco,Podgorica,Casablanca*,Rabat*,Amsterdam,Niamey,Abuja,Skopje,Longyearbyen,Oslo,Tromso,Bratislava,Ljubljana,Barcelona,Stockholm,Bern,Zurich,Zürich,Vatican_City,El_Aaiun*,El_Aaiún*,|GMT-2,Tel_Aviv,Gaborone,Benghazi,Bujumbura,Gitega,Lubumbashi,Mbabane,Kemi,Rovaniemi,Maseru,Lilongwe,Kigali,Cape_Town,Pretoria,Dnipro,Lusaka,Harare,|GMT-3,Dar_es_Salaam,|GMT-4,Port_Louis,Muscat,Saint-Denis,Izhevsk,Seychelles,Victoria,Abu_Dhabi,|GMT-5,Port-aux-Francais,Amsterdam_Island,Astana,Male,Islamabad,Lahore,|GMT-5:30,New_Delhi,Bengaluru,Mumbai,Bombay,Chennai,Kolkata,Calcutta,Sri_Jayawardenepura_Kotte,|GMT-5:45,Kathmandu,|GMT-6,Diego_Garcia,|GMT-6:30,Naypyidaw,|GMT-6:30,Yangon,|GMT-7,Phnom_Penh,Vientiane,Khatanga,Norilsk,Hanoi,|GMT-8,Bandar_Seri_Begawan,Beijing,Chongqing,Lhasa,Urumqi,Ürümqi,Denpasar,Nusantara,Kuala_Lumpur,|GMT-8:45,Eucla,|GMT-9,Manokwari,Ngerulmud,Tiksi,|GMT-9:30,Alice_Springs,Darwin,|GMT-10,Cairns,Hagatna,Hagåtña,Komsomolsk-on-Amur,Verkhoyansk,|GMT-10:30,Adelaide*,|GMT-11,Canberra*,Sydney*,Hobart*,Melbourne*,Palikir,Yuzhno-Sakhalinsk,Honiara,Port_Vila,|GMT-12,Wake_Island,|GMT+1,Praia,Ponta_Delgada,|GMT+2,Ittoqqortoormiit,Kangerlussuaq,Qaanaaq,King_Edward_Point,|GMT+3,Cordoba,Córdoba,Brasilia,Belem,Belém,Rio_de_Janeiro,Punta_Arenas*,Santiago*,|GMT+3:30,Mary's_Harbour,St_John's,St_Johns,|GMT+4,Bridgetown,Hamilton,Sucre,Happy_Valley-Thule_Air_Base,Basse-Terre,Georgetown,Port_of_Spain,|GMT+5,Nassau,Alert,Coral_Harbour,Eureka,Grise_Fiord,Pond_Inlet,Ottawa,Chibougamau,Kuujjuaq,Montreal,Montréal,Easter_Island*,Quito,Kingston,Cancun,Cancún,|GMT+6,Belmopan,Baker_Lake,Resolute_Bay,San_Jose,Galapagos_Islands,San_Salvador,Guatemala_City,|GMT+7,Calgary,|GMT+8,Adamstown,|GMT+9,Fairbanks,Unalaska,|GMT+10,Papeete,|GMT+11,Dodoma,Alofi,Ankara,Midway,Kampala,Sana,Manama,Moroni,Djibouti,Asmara,Addis_Ababa,Kuwait_City,Antananarivo,Doha,Belushya_Guba,Mogadishu,Marion_Island_(Prince_Edward_Islands),Marion_Island,|GMT+12,Baker_Island," $aSubst = StringSplit($sSubst, "|") For $i = 1 To $aSubst[0] If StringInStr($aSubst[$i], ("," & $sWhere)) Then If StringInStr($aSubst[$i], ("," & $sWhere & "*")) Then $sWhere &= "*" $bPossDST = 1 EndIf If StringInStr($aSubst[$i], ("," & $sWhere & ",")) Then $sWhere = _ StringLeft($aSubst[$i], StringInStr($aSubst[$i], ",") - 1) If StringInStr($sWhere, "GMT") = 1 Then $sWhere = "Etc/" & $sWhere EndIf Next ; Fractional UTC/GMT offsets If StringInStr($sWhere, ":") Then $aFrac = StringSplit($sWhere, ":") $sWhere = $aFrac[1] $iIncr = $aFrac[2] If StringInStr($sWhere, "+") Then $iIncr *= -1 EndIf $sTZdata = "Africa/Abidjan,Africa/Algiers,Africa/Bissau,Africa/Cairo,Africa/Casablanca,Africa/Ceuta,Africa/El_Aaiun,Africa/Johannesburg,Africa/Juba,Africa/Khartoum,Africa/Lagos,Africa/Maputo,Africa/Monrovia,Africa/Nairobi,Africa/Ndjamena,Africa/Sao_Tome,Africa/Tripoli,Africa/Tunis,Africa/Windhoek,America/Adak,America/Anchorage,America/Araguaina,America/Argentina/Buenos_Aires,America/Argentina/Catamarca,America/Argentina/Cordoba,America/Argentina/Jujuy,America/Argentina/La_Rioja,America/Argentina/Mendoza,America/Argentina/Rio_Gallegos,America/Argentina/Salta,America/Argentina/San_Juan,America/Argentina/San_Luis,America/Argentina/Tucuman,America/Argentina/Ushuaia,America/Asuncion,America/Bahia,America/Bahia_Banderas,America/Barbados,America/Belem,America/Belize,America/Boa_Vista,America/Bogota,America/Boise,America/Cambridge_Bay,America/Campo_Grande,America/Cancun,America/Caracas,America/Cayenne,America/Chicago,America/Chihuahua,America/Ciudad_Juarez,America/Costa_Rica,America/Cuiaba,America/Danmarkshavn,America/Dawson,America/Dawson_Creek,America/Denver,America/Detroit,America/Edmonton,America/Eirunepe,America/El_Salvador,America/Fort_Nelson,America/Fortaleza,America/Glace_Bay,America/Goose_Bay,America/Grand_Turk,America/Guatemala,America/Guayaquil,America/Guyana,America/Halifax,America/Havana,America/Hermosillo,America/Indiana/Indianapolis,America/Indiana/Knox,America/Indiana/Marengo,America/Indiana/Petersburg,America/Indiana/Tell_City,America/Indiana/Vevay,America/Indiana/Vincennes,America/Indiana/Winamac,America/Inuvik,America/Iqaluit,America/Jamaica,America/Juneau,America/Kentucky/Louisville,America/Kentucky/Monticello,America/La_Paz,America/Lima,America/Los_Angeles,America/Maceio,America/Managua,America/Manaus,America/Martinique,America/Matamoros,America/Mazatlan,America/Menominee,America/Merida,America/Metlakatla,America/Mexico_City,America/Miquelon,America/Moncton,America/Monterrey,America/Montevideo,America/New_York,America/Nome,America/Noronha,America/North_Dakota/Beulah,America/North_Dakota/Center,America/North_Dakota/New_Salem,America/Nuuk,America/Ojinaga,America/Panama,America/Paramaribo,America/Phoenix,America/Port-au-Prince,America/Porto_Velho,America/Puerto_Rico,America/Punta_Arenas,America/Rankin_Inlet,America/Recife,America/Regina,America/Resolute,America/Rio_Branco,America/Santarem,America/Santiago,America/Santo_Domingo,America/Sao_Paulo,America/Scoresbysund,America/Sitka,America/St_Johns,America/Swift_Current,America/Tegucigalpa,America/Thule," $sTZdata &= "America/Tijuana,America/Toronto,America/Vancouver,America/Whitehorse,America/Winnipeg,America/Yakutat,Antarctica/Casey,Antarctica/Davis,Antarctica/Macquarie,Antarctica/Mawson,Antarctica/Palmer,Antarctica/Rothera,Antarctica/Troll,Antarctica/Vostok,Asia/Almaty,Asia/Amman,Asia/Anadyr,Asia/Aqtau,Asia/Aqtobe,Asia/Ashgabat,Asia/Atyrau,Asia/Baghdad,Asia/Baku,Asia/Bangkok,Asia/Barnaul,Asia/Beirut,Asia/Bishkek,Asia/Chita,Asia/Choibalsan,Asia/Colombo,Asia/Damascus,Asia/Dhaka,Asia/Dili,Asia/Dubai,Asia/Dushanbe,Asia/Famagusta,Asia/Gaza,Asia/Hebron,Asia/Ho_Chi_Minh,Asia/Hong_Kong,Asia/Hovd,Asia/Irkutsk,Asia/Jakarta,Asia/Jayapura,Asia/Jerusalem,Asia/Kabul,Asia/Kamchatka,Asia/Karachi,Asia/Kathmandu,Asia/Khandyga,Asia/Kolkata,Asia/Krasnoyarsk,Asia/Kuching,Asia/Macau,Asia/Magadan,Asia/Makassar,Asia/Manila,Asia/Nicosia,Asia/Novokuznetsk,Asia/Novosibirsk,Asia/Omsk,Asia/Oral,Asia/Pontianak,Asia/Pyongyang,Asia/Qatar,Asia/Qostanay,Asia/Qyzylorda,Asia/Riyadh,Asia/Sakhalin,Asia/Samarkand,Asia/Seoul,Asia/Shanghai,Asia/Singapore,Asia/Srednekolymsk,Asia/Taipei,Asia/Tashkent,Asia/Tbilisi,Asia/Tehran,Asia/Thimphu,Asia/Tokyo,Asia/Tomsk,Asia/Ulaanbaatar,Asia/Urumqi,Asia/Ust-Nera,Asia/Vladivostok,Asia/Yakutsk,Asia/Yangon,Asia/Yekaterinburg,Asia/Yerevan,Atlantic/Azores,Atlantic/Bermuda,Atlantic/Canary,Atlantic/Cape_Verde,Atlantic/Faroe,Atlantic/Madeira,Atlantic/South_Georgia,Atlantic/Stanley,Australia/Adelaide,Australia/Brisbane,Australia/Broken_Hill,Australia/Darwin,Australia/Eucla,Australia/Hobart,Australia/Lindeman,Australia/Lord_Howe,Australia/Melbourne,Australia/Perth,Australia/Sydney,CET,CST6CDT,EET,EST,EST5EDT,Etc/GMT,Etc/GMT+1,Etc/GMT+10,Etc/GMT+11,Etc/GMT+12,Etc/GMT+2,Etc/GMT+3,Etc/GMT+4,Etc/GMT+5,Etc/GMT+6,Etc/GMT+7,Etc/GMT+8,Etc/GMT+9,Etc/GMT-1,Etc/GMT-10,Etc/GMT-11,Etc/GMT-12,Etc/GMT-13,Etc/GMT-14,Etc/GMT-2,Etc/GMT-3,Etc/GMT-4,Etc/GMT-5,Etc/GMT-6,Etc/GMT-7,Etc/GMT-8,Etc/GMT-9,Etc/UTC,Europe/Andorra,Europe/Astrakhan,Europe/Athens,Europe/Belgrade,Europe/Berlin,Europe/Brussels,Europe/Bucharest,Europe/Budapest,Europe/Chisinau,Europe/Dublin,Europe/Gibraltar,Europe/Helsinki,Europe/Istanbul,Europe/Kaliningrad,Europe/Kirov,Europe/Kyiv,Europe/Lisbon,Europe/London,Europe/Madrid,Europe/Malta,Europe/Minsk,Europe/Moscow,Europe/Paris,Europe/Prague,Europe/Riga,Europe/Rome,Europe/Samara,Europe/Saratov,Europe/Simferopol,Europe/Sofia,Europe/Tallinn,Europe/Tirane,Europe/Ulyanovsk,Europe/Vienna,Europe/Vilnius,Europe/Volgograd,Europe/Warsaw,Europe/Zurich,HST,Indian/Chagos,Indian/Maldives,Indian/Mauritius,MET,MST,MST7MDT,PST8PDT,Pacific/Apia,Pacific/Auckland,Pacific/Bougainville,Pacific/Chatham,Pacific/Easter,Pacific/Efate,Pacific/Fakaofo,Pacific/Fiji,Pacific/Galapagos,Pacific/Gambier,Pacific/Guadalcanal,Pacific/Guam,Pacific/Honolulu,Pacific/Kanton,Pacific/Kiritimati,Pacific/Kosrae,Pacific/Kwajalein,Pacific/Marquesas,Pacific/Nauru,Pacific/Niue,Pacific/Norfolk,Pacific/Noumea,Pacific/Pago_Pago,Pacific/Palau,Pacific/Pitcairn,Pacific/Port_Moresby,Pacific/Rarotonga,Pacific/Tahiti,Pacific/Tarawa,Pacific/Tongatapu,WET," $sSubst = StringReplace($sSubst, "_", " ") $sSubst = StringReplace($sSubst, "*", "") $sTZdata &= $sSubst $aTZdata = StringSplit($sTZdata, ",") $iMatch = _ListMatches($sWhere) If Not $iMatch Then If Not $sOut Then $sOut = "Nothing on """ & $sWhere & """" Exit ConsoleWrite($sOut) EndIf $sTail = $aTZdata[$iMatch] $sURL &= $sTail $h1 = InetGet($sURL, $sDataFn) If Not $h1 Then If Not $sOut Then _ExitError("Nothing on """ & $sWhere & """") Else Exit ConsoleWrite($sOut & @CRLF) EndIf EndIf InetClose($h1) $h2 = FileOpen($sDataFn) If $h2 < 0 Then _ExitError("Error opening " & $sDataFn) $sData = FileRead($h2) FileClose($h2) If FileExists($sDataFn) Then FileDelete($sDataFn) $aData = StringSplit($sData, ",") $aDow = StringSplit("Mon|Tue|Wed|Thu|Fri|Sat|Sun", "|") If $iIncr = 0 Then $iDoW = StringRight($aData[3], 1) If $iDoW < 1 Then $iDoW = 7 $sOut &= $aDoW[$iDoW] & " " $sOut &= StringMid($aData[5], 24, 8) If $aData[10] = '"dst":true' Then $sOut &= " (DST)" Else $DTime = StringReplace(StringMid($aData[5], 13, 19), "-", "/") $DTime = StringReplace($DTime, "T", " ") $DTadj = _DateAdd("n", $iIncr, $DTime) $aDTm = StringSplit(StringLeft($DTadj, 10), "/") $iDoW = _DateToDayofWeek($aDTm[1], $aDTm[2], $aDTm[3]) - 1 If $iDoW < 1 Then $iDoW = 7 $sOut &= $aDoW[$iDoW] & " " & StringRight($DTadj, 8) EndIf If $bPossDST Then $sOut &= @CRLF & "(possibly plus|minus DST offset)" Exit ConsoleWrite($sOut & @CRLF) Func _ListMatches($sStr = "") Local $iCount = 0, $iIndex = 0, $sFixGMT = "", $sStr0 = "" If $sStr Then For $i = 1 To $aTZdata[0] If StringInStr($aTZdata[$i], $sStr) = 0 Or _ StringInStr($aTZdata[$i], "|") = 1 Then ContinueLoop $iIndex = $i $sStr0 = $aTZdata[$i] If StringInStr($sStr0, "/") And Not StringInStr($sStr0, "Etc/") Then $sStr0 = StringSplit($sStr0, "/")[2] If $sStr0 = $sStr Then $sFixGMT = $aTZdata[$i] If StringInStr($sFixGMT, "Etc/") = 1 Then $sFixGMT = StringReplace($aTZdata[$i], "Etc/GMT", "UTC/GMT") If StringInStr($sFixGMT, "+") = 8 Then $sFixGMT = StringReplace($sFixGMT, "+", "-") ElseIf StringInStr($sFixGMT, "-") = 8 Then $sFixGMT = StringReplace($sFixGMT, "-", "+") EndIf EndIf If $iIncr > 0 Then $sFixGMT &= ":" & String(Abs($iIncr)) $sOut &= $sFixGMT & " " Return $iIndex EndIf $iCount += 1 If $iCount = 2 Then $sOut &= @CRLF If StringInStr($aTZdata[$i], "Etc/") = 0 Then $sOut &= $aTZdata[$i] & " " If $iCount > 1 Then $sOut &= @CRLF EndIf Next EndIf If Not $iCount Then _ExitError("Nothing on """ & $sStr & """") Else If $iCount > 1 Then $iCount = 0 Else $iCount = $iIndex EndIf EndIf Return $iCount EndFunc ;==>_ListMatches Func _ExitError($sStr = "") If $sStr Then ConsoleWrite($sStr & @CRLF) Exit EndFunc ;==>_ExitError Func _ShowHelp() ConsoleWrite("World Time via WorldTimeAPI " & $sRevDate & _ @CRLF & "Supplemental time zone data from www.timeanddate.com" & _ @CRLF & "Usage:" & @CRLF & StringTrimRight(@ScriptName, 4) & _ " <CITY>" & @CRLF & "--" & @CRLF & StringTrimRight(@ScriptName, 4) & _ " <substring> lists cities in database containing <substring>" & _ @CRLF & "Listings in format <continent>/<city> (e.g., Europe/Lisbon) obtain" & _ @CRLF & " the current time from the server at worldtimeapi.org." & @CRLF & _ "Listings with city name only use an internal database to determine" & _ @CRLF & " the applicable UTC/GMT offset." & @CRLF & _ "Accuracy is NOT guaranteed!" & @CRLF) EndFunc ;==>_ShowHelp Edited 10 hours ago by CarlD
argumentum Posted 11 hours ago Posted 11 hours ago 31 minutes ago, CarlD said: Times are obtained from the server at worldtimeapi.org. expandcollapse popup#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Outfile=F:\Dropbox\AutoIt\TimeIn.exe #AutoIt3Wrapper_UseUpx=y #AutoIt3Wrapper_UseX64=n #AutoIt3Wrapper_Run_Au3Stripper=y #AutoIt3Wrapper_AU3Check_Parameters=-w 3 -w 4 -w 5 -w 6 -d #AutoIt3Wrapper_Change2CUI=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** ; #include <Date.au3> ; World Time via API at worldtimeapi.org Global $sRevDate = "[CLD rev. 2024-12-21]" ; If $CmdLine[0] = 0 Then Exit _ShowHelp() If StringInStr($CmdLine[1], "?") Then Exit _ShowHelp() Global $aData, $aDow, $aDTm, $aFrac = "", $aSubst, $aTZdata Global $bPossDST = 0, $DTadj, $DTime, $h1, $h2 Global $sDoW, $iDoW0, $iDoW1, $iIncr = 0, $iMatch Global $sData = "", $sDataFn = @ScriptDir & "\timedat.dat" Global $sOut = "", $sSubst, $iTmp Global $sTail = "", $sTZdata, $sWhere = "" Global $sURL = "http://worldtimeapi.org/api/timezone/" If $CmdLine[0] Then $sWhere = $CmdLineRaw If StringInStr($sWhere, " ") Then $sWhere = StringReplace($sWhere, " ", "_") If StringInStr($sWhere, ".") Then $sWhere = StringReplace($sWhere, ".", "") If StringInStr($sWhere, "UTC+") Then $sWhere = StringReplace($sWhere, "UTC+", "GMT+") If StringInStr($sWhere, "UTC-") Then $sWhere = StringReplace($sWhere, "UTC-", "GMT-") If StringInStr($sWhere, "GMT+") Then $sWhere = StringReplace($sWhere, "GMT+", "GMT-") If StringInStr($sWhere, "GMT-") Then $sWhere = StringReplace($sWhere, "GMT-", "GMT+") ; Substitution table ; GMT offsets use opposite sign -/+ (quirk of WorldTimeAPI data format) $sSubst = "EST5EDT,Washington,Washington_DC,DC,Miami,Atlanta,Boston,Philadelphia,|CST6CDT,New_Orleans,Minneapolis,Kansas_City,Oklahoma_City,Dallas,Houston,|MST7MDT,Salt_Lake_City,|PST8PDT,San_Diego,San_Francisco,Las_Vegas,Seattle,|GMT,Reykjavik,Douglas,Bamako,Timbuktu,Nouakchott,Jamestown,Dakar,Freetown,Lomé,Greenwich,Edinburgh,Cardiff,Suva,Majuro,Yaren,Pevek,Petropavlovsk-Kamchatsky,Ouagadougou,Funafuti,Wake_Island,Yamoussoukro,Torshavn,Tórshavn,Banjul,Accra,Conakry,|GMT-1,Tirana,Luanda,Porto_Novo,Sarajevo,Yaounde,Yaoundé,Bangui,N'Djamena,Brazzaville,Kinshasa,Zagreb,Copenhagen,Malabo,Libreville,Frankfurt,Luxembourg,Vaduz,Valletta,Monaco,Podgorica,Casablanca*,Rabat*,Amsterdam,Niamey,Abuja,Skopje,Longyearbyen,Oslo,Tromso,Bratislava,Ljubljana,Barcelona,Stockholm,Bern,Zurich,Zürich,Vatican_City,El_Aaiun*,El_Aaiún*,|GMT-2,Tel_Aviv,Gaborone,Benghazi,Bujumbura,Gitega,Lubumbashi,Mbabane,Kemi,Rovaniemi,Maseru,Lilongwe,Kigali,Cape_Town,Pretoria,Dnipro,Lusaka,Harare,|GMT-3,Dar_es_Salaam,|GMT-4,Port_Louis,Muscat,Saint-Denis,Izhevsk,Seychelles,Victoria,Abu_Dhabi,|GMT-5,Port-aux-Francais,Amsterdam_Island,Astana,Male,Islamabad,Lahore,|GMT-5:30,New_Delhi,Bengaluru,Mumbai,Bombay,Chennai,Kolkata,Calcutta,Sri_Jayawardenepura_Kotte,|GMT-5:45,Kathmandu,|GMT-6,Diego_Garcia,|GMT-6:30,Naypyidaw,|GMT-6:30,Yangon,|GMT-7,Phnom_Penh,Vientiane,Khatanga,Norilsk,Hanoi,|GMT-8,Bandar_Seri_Begawan,Beijing,Chongqing,Lhasa,Urumqi,Ürümqi,Denpasar,Nusantara,Kuala_Lumpur,|GMT-8:45,Eucla,|GMT-9,Manokwari,Ngerulmud,Tiksi,|GMT-9:30,Alice_Springs,Darwin,|GMT-10,Cairns,Hagatna,Hagåtña,Komsomolsk-on-Amur,Verkhoyansk,|GMT-10:30,Adelaide*,|GMT-11,Canberra*,Sydney*,Hobart*,Melbourne*,Palikir,Yuzhno-Sakhalinsk,Honiara,Port_Vila,|GMT-12,Wake_Island,|GMT+1,Praia,Ponta_Delgada,|GMT+2,Ittoqqortoormiit,Kangerlussuaq,Qaanaaq,King_Edward_Point,|GMT+3,Cordoba,Córdoba,Brasilia,Belem,Belém,Rio_de_Janeiro,Punta_Arenas*,Santiago*,|GMT+3:30,Mary's_Harbour,St_John's,St_Johns,|GMT+4,Bridgetown,Hamilton,Sucre,Happy_Valley-Thule_Air_Base,Basse-Terre,Georgetown,Port_of_Spain,|GMT+5,Nassau,Alert,Coral_Harbour,Eureka,Grise_Fiord,Pond_Inlet,Ottawa,Chibougamau,Kuujjuaq,Montreal,Montréal,Easter_Island*,Quito,Kingston,Cancun,Cancún,|GMT+6,Belmopan,Baker_Lake,Resolute_Bay,San_Jose,Galapagos_Islands,San_Salvador,Guatemala_City,|GMT+7,Calgary,|GMT+8,Adamstown,|GMT+9,Fairbanks,Unalaska,|GMT+10,Papeete,|GMT+11,Dodoma,Alofi,Ankara,Midway,Kampala,Sana,Manama,Moroni,Djibouti,Asmara,Addis_Ababa,Kuwait_City,Antananarivo,Doha,Belushya_Guba,Mogadishu,Marion_Island_(Prince_Edward_Islands),Marion_Island,|GMT+12,Baker_Island," $aSubst = StringSplit($sSubst, "|") For $i = 1 To $aSubst[0] If StringInStr($aSubst[$i], ("," & $sWhere)) Then If StringInStr($aSubst[$i], ("," & $sWhere & "*")) Then $sWhere &= "*" $bPossDST = 1 EndIf If StringInStr($aSubst[$i], ("," & $sWhere & ",")) Then $sWhere = _ StringLeft($aSubst[$i], StringInStr($aSubst[$i], ",") - 1) If StringInStr($sWhere, "GMT") = 1 Then $sWhere = "Etc/" & $sWhere EndIf Next ; Fractional UTC/GMT offsets If StringInStr($sWhere, ":") Then $aFrac = StringSplit($sWhere, ":") $sWhere = $aFrac[1] $iIncr = $aFrac[2] If StringInStr($sWhere, "+") Then $iIncr *= -1 EndIf $sTZdata = "Africa/Abidjan,Africa/Algiers,Africa/Bissau,Africa/Cairo,Africa/Casablanca,Africa/Ceuta,Africa/El_Aaiun,Africa/Johannesburg,Africa/Juba,Africa/Khartoum,Africa/Lagos,Africa/Maputo,Africa/Monrovia,Africa/Nairobi,Africa/Ndjamena,Africa/Sao_Tome,Africa/Tripoli,Africa/Tunis,Africa/Windhoek,America/Adak,America/Anchorage,America/Araguaina,America/Argentina/Buenos_Aires,America/Argentina/Catamarca,America/Argentina/Cordoba,America/Argentina/Jujuy,America/Argentina/La_Rioja,America/Argentina/Mendoza,America/Argentina/Rio_Gallegos,America/Argentina/Salta,America/Argentina/San_Juan,America/Argentina/San_Luis,America/Argentina/Tucuman,America/Argentina/Ushuaia,America/Asuncion,America/Bahia,America/Bahia_Banderas,America/Barbados,America/Belem,America/Belize,America/Boa_Vista,America/Bogota,America/Boise,America/Cambridge_Bay,America/Campo_Grande,America/Cancun,America/Caracas,America/Cayenne,America/Chicago,America/Chihuahua,America/Ciudad_Juarez,America/Costa_Rica,America/Cuiaba,America/Danmarkshavn,America/Dawson,America/Dawson_Creek,America/Denver,America/Detroit,America/Edmonton,America/Eirunepe,America/El_Salvador,America/Fort_Nelson,America/Fortaleza,America/Glace_Bay,America/Goose_Bay,America/Grand_Turk,America/Guatemala,America/Guayaquil,America/Guyana,America/Halifax,America/Havana,America/Hermosillo,America/Indiana/Indianapolis,America/Indiana/Knox,America/Indiana/Marengo,America/Indiana/Petersburg,America/Indiana/Tell_City,America/Indiana/Vevay,America/Indiana/Vincennes,America/Indiana/Winamac,America/Inuvik,America/Iqaluit,America/Jamaica,America/Juneau,America/Kentucky/Louisville,America/Kentucky/Monticello,America/La_Paz,America/Lima,America/Los_Angeles,America/Maceio,America/Managua,America/Manaus,America/Martinique,America/Matamoros,America/Mazatlan,America/Menominee,America/Merida,America/Metlakatla,America/Mexico_City,America/Miquelon,America/Moncton,America/Monterrey,America/Montevideo,America/New_York,America/Nome,America/Noronha,America/North_Dakota/Beulah,America/North_Dakota/Center,America/North_Dakota/New_Salem,America/Nuuk,America/Ojinaga,America/Panama,America/Paramaribo,America/Phoenix,America/Port-au-Prince,America/Porto_Velho,America/Puerto_Rico,America/Punta_Arenas,America/Rankin_Inlet,America/Recife,America/Regina,America/Resolute,America/Rio_Branco,America/Santarem,America/Santiago,America/Santo_Domingo,America/Sao_Paulo,America/Scoresbysund,America/Sitka,America/St_Johns,America/Swift_Current,America/Tegucigalpa,America/Thule," $sTZdata &= "America/Tijuana,America/Toronto,America/Vancouver,America/Whitehorse,America/Winnipeg,America/Yakutat,Antarctica/Casey,Antarctica/Davis,Antarctica/Macquarie,Antarctica/Mawson,Antarctica/Palmer,Antarctica/Rothera,Antarctica/Troll,Antarctica/Vostok,Asia/Almaty,Asia/Amman,Asia/Anadyr,Asia/Aqtau,Asia/Aqtobe,Asia/Ashgabat,Asia/Atyrau,Asia/Baghdad,Asia/Baku,Asia/Bangkok,Asia/Barnaul,Asia/Beirut,Asia/Bishkek,Asia/Chita,Asia/Choibalsan,Asia/Colombo,Asia/Damascus,Asia/Dhaka,Asia/Dili,Asia/Dubai,Asia/Dushanbe,Asia/Famagusta,Asia/Gaza,Asia/Hebron,Asia/Ho_Chi_Minh,Asia/Hong_Kong,Asia/Hovd,Asia/Irkutsk,Asia/Jakarta,Asia/Jayapura,Asia/Jerusalem,Asia/Kabul,Asia/Kamchatka,Asia/Karachi,Asia/Kathmandu,Asia/Khandyga,Asia/Kolkata,Asia/Krasnoyarsk,Asia/Kuching,Asia/Macau,Asia/Magadan,Asia/Makassar,Asia/Manila,Asia/Nicosia,Asia/Novokuznetsk,Asia/Novosibirsk,Asia/Omsk,Asia/Oral,Asia/Pontianak,Asia/Pyongyang,Asia/Qatar,Asia/Qostanay,Asia/Qyzylorda,Asia/Riyadh,Asia/Sakhalin,Asia/Samarkand,Asia/Seoul,Asia/Shanghai,Asia/Singapore,Asia/Srednekolymsk,Asia/Taipei,Asia/Tashkent,Asia/Tbilisi,Asia/Tehran,Asia/Thimphu,Asia/Tokyo,Asia/Tomsk,Asia/Ulaanbaatar,Asia/Urumqi,Asia/Ust-Nera,Asia/Vladivostok,Asia/Yakutsk,Asia/Yangon,Asia/Yekaterinburg,Asia/Yerevan,Atlantic/Azores,Atlantic/Bermuda,Atlantic/Canary,Atlantic/Cape_Verde,Atlantic/Faroe,Atlantic/Madeira,Atlantic/South_Georgia,Atlantic/Stanley,Australia/Adelaide,Australia/Brisbane,Australia/Broken_Hill,Australia/Darwin,Australia/Eucla,Australia/Hobart,Australia/Lindeman,Australia/Lord_Howe,Australia/Melbourne,Australia/Perth,Australia/Sydney,CET,CST6CDT,EET,EST,EST5EDT,Etc/GMT,Etc/GMT+1,Etc/GMT+10,Etc/GMT+11,Etc/GMT+12,Etc/GMT+2,Etc/GMT+3,Etc/GMT+4,Etc/GMT+5,Etc/GMT+6,Etc/GMT+7,Etc/GMT+8,Etc/GMT+9,Etc/GMT-1,Etc/GMT-10,Etc/GMT-11,Etc/GMT-12,Etc/GMT-13,Etc/GMT-14,Etc/GMT-2,Etc/GMT-3,Etc/GMT-4,Etc/GMT-5,Etc/GMT-6,Etc/GMT-7,Etc/GMT-8,Etc/GMT-9,Etc/UTC,Europe/Andorra,Europe/Astrakhan,Europe/Athens,Europe/Belgrade,Europe/Berlin,Europe/Brussels,Europe/Bucharest,Europe/Budapest,Europe/Chisinau,Europe/Dublin,Europe/Gibraltar,Europe/Helsinki,Europe/Istanbul,Europe/Kaliningrad,Europe/Kirov,Europe/Kyiv,Europe/Lisbon,Europe/London,Europe/Madrid,Europe/Malta,Europe/Minsk,Europe/Moscow,Europe/Paris,Europe/Prague,Europe/Riga,Europe/Rome,Europe/Samara,Europe/Saratov,Europe/Simferopol,Europe/Sofia,Europe/Tallinn,Europe/Tirane,Europe/Ulyanovsk,Europe/Vienna,Europe/Vilnius,Europe/Volgograd,Europe/Warsaw,Europe/Zurich,HST,Indian/Chagos,Indian/Maldives,Indian/Mauritius,MET,MST,MST7MDT,PST8PDT,Pacific/Apia,Pacific/Auckland,Pacific/Bougainville,Pacific/Chatham,Pacific/Easter,Pacific/Efate,Pacific/Fakaofo,Pacific/Fiji,Pacific/Galapagos,Pacific/Gambier,Pacific/Guadalcanal,Pacific/Guam,Pacific/Honolulu,Pacific/Kanton,Pacific/Kiritimati,Pacific/Kosrae,Pacific/Kwajalein,Pacific/Marquesas,Pacific/Nauru,Pacific/Niue,Pacific/Norfolk,Pacific/Noumea,Pacific/Pago_Pago,Pacific/Palau,Pacific/Pitcairn,Pacific/Port_Moresby,Pacific/Rarotonga,Pacific/Tahiti,Pacific/Tarawa,Pacific/Tongatapu,WET," $sSubst = StringReplace($sSubst, "_", " ") $sSubst = StringReplace($sSubst, "*", "") $sTZdata &= $sSubst $aTZdata = StringSplit($sTZdata, ",") $iMatch = _ListMatches($sWhere) If Not $iMatch Then If Not $sOut Then $sOut = "Nothing on """ & $sWhere & """" Exit ConsoleWrite($sOut) EndIf $sTail = $aTZdata[$iMatch] $sURL &= $sTail $h1 = InetGet($sURL, $sDataFn) If Not $h1 Then If Not $sOut Then _ExitError("Nothing on """ & $sWhere & """") Else Exit ConsoleWrite($sOut & @CRLF) EndIf EndIf InetClose($h1) $h2 = FileOpen($sDataFn) If $h2 < 0 Then _ExitError("Error opening " & $sDataFn) $sData = FileRead($h2) FileClose($h2) If FileExists($sDataFn) Then FileDelete($sDataFn) $aData = StringSplit($sData, ",") $sDoW = "Mon|Tue|Wed|Thu|Fri|Sat|Sun" $aDow = StringSplit($sDoW, "|") If $iIncr = 0 Then $iDoW0 = @WDAY - 1 If $iDoW0 < 1 Then $iDow0 = 7 $iDoW1 = StringRight($aData[3], 1) $sOut &= $aDoW[$iDow1] & " " $sOut &= StringMid($aData[5], 24, 8) If $aData[10] = '"dst":true' Then $sOut &= " (DST)" Else $DTime = StringReplace(StringMid($aData[5], 13, 19), "-", "/") $DTime = StringReplace($DTime, "T", " ") $DTadj = _DateAdd("n", $iIncr, $DTime) $aDTm = StringSplit(StringLeft($DTadj, 10), "/") $iDow1 = _DateToDayofWeek($aDTm[1], $aDTm[2], $aDTm[3]) - 1 If $iDoW1 < 1 Then $iDow1 = 7 $sOut &= $aDoW[$iDoW1] & " " & StringRight($DTadj, 8) EndIf If $bPossDST Then $sOut &= @CRLF & "(possibly plus|minus DST offset)" Exit ConsoleWrite($sOut & @CRLF) Func _ListMatches($sStr = "") Local $iCount = 0, $iIndex = 0, $sFixGMT = "", $sStr0 = "" If $sStr Then For $i = 1 To $aTZdata[0] If StringInStr($aTZdata[$i], $sStr) = 0 Or _ StringInStr($aTZdata[$i], "|") = 1 Then ContinueLoop $iIndex = $i $sStr0 = $aTZdata[$i] If StringInStr($sStr0, "/") And Not StringInStr($sStr0, "Etc/") Then $sStr0 = StringSplit($sStr0, "/")[2] If $sStr0 = $sStr Then $sFixGMT = $aTZdata[$i] If StringInStr($sFixGMT, "Etc/") = 1 Then $sFixGMT = StringReplace($aTZdata[$i], "Etc/GMT", "UTC/GMT") If StringInStr($sFixGMT, "+") = 8 Then $sFixGMT = StringReplace($sFixGMT, "+", "-") ElseIf StringInStr($sFixGMT, "-") = 8 Then $sFixGMT = StringReplace($sFixGMT, "-", "+") EndIf EndIf If $iIncr > 0 Then $sFixGMT &= ":" & String(Abs($iIncr)) $sOut &= $sFixGMT & " " Return $iIndex EndIf $iCount += 1 If $iCount = 2 Then $sOut &= @CRLF If StringInStr($aTZdata[$i], "Etc/") = 0 Then $sOut &= $aTZdata[$i] & " " If $iCount > 1 Then $sOut &= @CRLF EndIf Next EndIf If Not $iCount Then _ExitError("Nothing on """ & $sStr & """") Else If $iCount > 1 Then $iCount = 0 Else $iCount = $iIndex EndIf EndIf Return $iCount EndFunc ;==>_ListMatches Func _ExitError($sStr = "") If $sStr Then ConsoleWrite($sStr & @CRLF) Exit EndFunc ;==>_ExitError Func _ShowHelp() ConsoleWrite("World Time via WorldTimeAPI " & $sRevDate & _ @CRLF & "Supplemental time zone data from www.timeanddate.com" & _ @CRLF & "Usage:" & @CRLF & StringTrimRight(@ScriptName, 4) & _ " <CITY>" & @CRLF & "--" & @CRLF & StringTrimRight(@ScriptName, 4) & _ " <substring> lists cities in database containing <substring>" & _ @CRLF & "Listings in format <continent>/<city> (e.g., Europe/Lisbon) obtain" & _ @CRLF & " the current time from the server at worldtimeapi.org." & @CRLF & _ "Listings with city name only use an internal database to determine" & _ @CRLF & " the applicable UTC/GMT offset." & @CRLF & _ "Accuracy is NOT guaranteed!" & @CRLF) EndFunc ;==>_ShowHelp ...so, who wrote this @CarlD ? Follow the link to my code contribution ( and other things too ). FAQ - Please Read Before Posting.
CarlD Posted 11 hours ago Author Posted 11 hours ago 10 minutes ago, argumentum said: ...so, who wrote this @CarlD ? I did, of course. I also/often go by my initials, CLD. argumentum 1
CarlD Posted 10 hours ago Author Posted 10 hours ago (edited) Thanks to suggestions from @argumentum, I will be revising this script -- but not until after the year-end holidays. Cheers. Edited 10 hours ago by CarlD argumentum 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now