Mô đun:Time/data

----------------------------------------------------------------------
for internationalization, this section to hold constant text, parameter names and values, other items subject to
language translation
local cfg = {
	'default_df' = 'dmy',														-- default date format when | and |df= omitted or empty
	'df_vals' = {
		'dmy'=true,
		'dmy12'=true,															-- also 'y'
		'dow'=true,
		'mdy'=true,
		'mdy12'=true,
		'iso'=true,
		'y'=true,																-- also 'dmy' and 'dmy12'
		'12'=true,
		'24'=true,
		};
	'err_msg' = ' – $1 (trợ giúp)',
	'err_text' = {
		'bad_def' = 'định nghĩa không đầy đủ cho $1',
		'bad_df_pair' = 'bị thiếu cả hai |df-cust-a= và |df-cust-p',
		'bad_dst' = 'lỗi tính toán dấu thời gian dst',
		'bad_format' = 'định dạng ngày $1 không hợp lệ',
		'bad_sign' = 'sử dụng ± không hợp lệ',
		'test_time' = '_TEST_TIME_ không đúng hoặc không đầy đủ',
		'unknown_tz' = 'không rõ múi giờ $1',
		},
	'format' = {																-- output formatting strings
		t12 = 'g:i a',															-- time only
		t24 = 'H:i',
		
		iso_date ='Y-m-d',														-- date only
		dmy_date = 'j F Y',
		mdy_date = 'F j, Y',
		
		dmy12 = 'g:i a, j F, Y',													-- 12hr time and date
		mdy12 = 'g:i a, F j, Y',
		
		dmy = 'H:i, j F, Y',														-- 24hr time and date
		mdy = 'H:i, F j, Y',
		iso = 'Y-m-d"T"H:i',
		
		dow = 'l'																-- day of the week
		},
	'refresh-label' = 'refresh',												-- refresh link label text
	
	-- for dst calculations
	days = {'sunday' = 0, 'monday' = 1, 'tuesday' = 2, 'wednesday' = 3, 'thursday' = 4, 'friday' = 5, 'saturday' = 6},
	months = {'january' = 1, 'february' = 2, 'march' = 3, 'april' = 4, 'may' = 5, 'june' = 6,
		'july' = 7, 'august' = 8, 'september' = 9, 'october' = 10, 'november' = 11, 'december' = 12};
	ordinals = {'1st' = 1, 'first' = 1, '2nd' = 2, 'second' = 2, '3rd' = 3, 'third' = 3, '4th' = 4, 'fourth' = 4, '5th' = 5, 'fifth' = 5, 'last' = -1},
	-- parameter list
	aliases = {
		'dateonly' = {'dateonly'},
		'df' = {'df'},
		'df-cust' = {'df-cust'},
		'df-cust-a' = {'df-cust-a'},
		'df-cust-p' = {'df-cust-p'},
		'dst' = {'dst'},
		'hide-refresh' = {'hide-refresh'},
		'hide-tz' = {'hide-tz'},
		'lang' = {'lang'},
		'timeonly' = {'timeonly'},
		'unlink-tz' = {'unlink-tz'},
		}
	}
--------------------------------------------------------------------------------------------
local tz_aliases = {
	'british summer time' = 'gmt-uk',
	'irish standard time' = 'gmt-ie',
	'usz1' = 'kalt',															-- old form Kaliningrad time
	'west' = 'wet',															-- dst aliases east of utc
	'cest' = 'cet',
	'eest' = 'eet',
	'acdt' = 'acst',
	'aedt' = 'aest',
	'nzdt' = 'nzst',
	'at' = 'ast',																-- alternate abbreviations west of utc
	'et' = 'est',
	'ct' = 'cst',
	'pt' = 'pst',
	'akt' = 'akst',
	'hst' = 'hast',
	'pmdt' = 'pmst',															-- dst aliases west of utc
	'wgst' = 'wgt',
	'ndt' = 'nst',
	'adt' = 'ast',
	'edt' = 'est',
	'cdt' = 'cst',
	'mdt' = 'mst',
	'pdt' = 'pst',
	'akdt' = 'akst',
	'hdt' = 'hast',
	}
--------------------------------------------------------------------------------
When specifying utc offset do not use the minus character (U+2212) for offsets west of 0 meridian; use the minus-hyphen
local tz_data = {
--------------------------------------------------------------------------------
'utc' = {
	abbr = 'UTC',			-- (required) abbreviation to use during standard time
	dst_abbr = ,			-- abbreviation to use during daylight saving time
	utc_offset = '00:00',	-- (required) hours and minutes offset from UTC for this timezone; '+' is optional; '-' (hyphen-minus) is required for timezones west of 0 meridian
	df = 'dmy',				-- date format typically used in the time zone
	dst_begins = ,		-- daylight saving begins; e.g. 2nd Sunday in March; also last; empty string if not observed
	dst_ends = ,			-- (required if dst_begins is set) daylight saving ends; e.g. 1st Sunday in November; ignored if dst_begins not set
	dst_time = ,			-- (required if dst_begins is set) local time on the day that dst begins/ends; for EU DST rules specify utc time: e.g.: '01:00 UTC'
	dst_e_time = ,		-- local daylight saving time on the day that dst ends; only when different from dst_time; see acst for an example
	article = 'Coordinated Universal Time'	-- (required) name of related Wikipedia article without markup
	},
'gmt' = {
	abbr = 'GMT',			
	dst_abbr = ,
	utc_offset = '00:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Greenwich Mean Time'
},
'gmt-uk' = {
	abbr = 'GMT',			
	dst_abbr = 'BST',															-- British Summer Time
	utc_offset = '00:00',
	df = 'dmy',
	dst_begins = 'last Sunday of March',
	dst_ends = 'last Sunday of October',
	dst_time = '01:00 UTC',														-- 01:00 standard time is same as 01:00 UTC
	article = 'Time in the United Kingdom'
},
'gmt-ie' = {																	-- ist is shared with Indian Standard Time so use gmt-ie
	abbr = 'GMT',																-- winter time
	dst_abbr = 'IST',															-- Irish Standard Time occurs in summer
	utc_offset = '00:00',
	df = 'dmy',
	dst_begins = 'last Sunday of March',
	dst_ends = 'last Sunday of October',
	dst_time = '01:00 UTC',														-- 01:00 standard time is same as 01:00 UTC
	article = 'Time in Ireland'
},
'wet' = {
	abbr = 'WET',
	dst_abbr = 'WEST',
	utc_offset = '00:00',
	df = 'dmy',
	dst_begins = 'last Sunday of March',
	dst_ends = 'last Sunday of October',
	dst_time = '01:00 UTC',														-- 01:00 standard time is same as 01:00 UTC
	article = 'Western European Time'
},
'cet' = {
	abbr = 'CET',
	dst_abbr = 'CEST',
	utc_offset = '01:00',
	df = 'dmy',
	dst_begins = 'last Sunday of March',
	dst_ends = 'last Sunday of October',
	dst_time = '01:00 UTC',														-- 02:00 standard time is same as 01:00 UTC
	article = 'Central European Time'
},
'eet' = {
	abbr = 'EET',
	dst_abbr = 'EEST',
	utc_offset = '02:00',
	df = 'dmy',
	dst_begins = 'last Sunday of March',
	dst_ends = 'last Sunday of October',
	dst_time = '01:00 UTC',														-- 03:00 standard time is same as 01:00 UTC
	article = 'Eastern European Time'
},
'kalt' = {
	abbr = 'KALT',
	dst_abbr = ,
	utc_offset = '02:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Kaliningrad Time'
},
'msk' = {
	abbr = 'MSK',
	dst_abbr = ,
	utc_offset = '03:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Moscow Time'
},
'samt' = {
	abbr = 'SAMT',
	dst_abbr = ,
	utc_offset = '04:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Samara Time'
},
'yekt' = {
	abbr = 'YEKT',
	dst_abbr = ,
	utc_offset = '05:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Yekaterinburg Time'
},
'pkt' = {
	abbr = 'PKT',			
	dst_abbr = ,
	utc_offset = '05:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Pakistan Standard Time'
},
'ist' = {
	abbr = 'IST',
	utc_offset = '05:30',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Indian Standard Time'
},
'slst' = {
	abbr = 'SLST',
	utc_offset = '05:30',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Sri Lanka Standard Time'
},
'npt' = {
	abbr = 'NPT',
	dst_abbr = ,
	utc_offset = '05:45',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Nepal Time'
},
'bst' = {
	abbr = 'BST',
	utc_offset = '06:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Bangladesh Standard Time'
},
'omst' = {
	abbr = 'OMST',
	dst_abbr = ,
	utc_offset = '06:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Omsk Time'
},
'krat' = {
	abbr = 'KRAT',
	dst_abbr = ,
	utc_offset = '07:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Krasnoyarsk Time'
},
'wib' = {																		-- western indonesia
	abbr = 'WIB',
	dst_abbr = ,
	utc_offset = '07:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Time in Indonesia'
},
'awst' = {
	abbr = 'AWST',
	dst_abbr = ,
	utc_offset = '08:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Time in Australia'
},
'bt' = {																		-- same as China standard time (CST)
	abbr = 'BT',
	dst_abbr = ,
	utc_offset = '08:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Time in China'
},
'irkt' = {
	abbr = 'IRKT',
	dst_abbr = ,
	utc_offset = '08:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Irkutsk Time'
},
'sst' = {																		
	abbr = 'SST',
	dst_abbr = ,
	utc_offset = '08:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Singapore Standard Time',
},
'wita' = {		-- central
	abbr = 'WITA',
	dst_abbr = ,
	utc_offset = '08:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Time in Indonesia'
},
'jst' = {
	abbr = 'JST',
	dst_abbr = ,
	utc_offset = '09:00',
	df = 'iso',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Japan Standard Time'
},
'kst' = {
	abbr = 'KST',                      
	dst_abbr = ,
	utc_offset = '09:00',
	df = 'iso',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	dst_e_time = ,
	article = 'Time in South Korea'
},
'wit' = {																		-- eastern Indonesia (same as old template's eit)
	abbr = 'WIT',
	dst_abbr = ,
	utc_offset = '09:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Time in Indonesia'
},
'yakt' = {
	abbr = 'YAKT',
	dst_abbr = ,
	utc_offset = '09:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Yakutsk Time'
},
'acst' = {																	-- Northern Territory, South Australia time
	abbr = 'ACST',
	dst_abbr = 'ACDT',
	utc_offset = '09:30',
	df = 'dmy',
	dst_begins = 'first Sunday in October',
	dst_ends = 'first Sunday in April',
	dst_time = '02:00',
	dst_e_time = '03:00',
	article = 'Time in Australia'
},
'aest' = {		-- QLD, NSW, TAS, VIC, ACT
	abbr = 'AEST',
	dst_abbr = 'AEDT',
	utc_offset = '10:00',
	df = 'dmy',
	dst_begins = 'first Sunday in October',
	dst_ends = 'first Sunday in April',
	dst_time = '02:00',															-- begins at 02:00 AEST
	dst_e_time = '03:00',														-- ends at 02:00 AEST which is 03:00 AEDT
	article = 'Time in Australia'
},
'chst' = {
	abbr = 'ChST',
	dst_abbr = ,
	utc_offset = '10:00',
	df = 'mdy',																	-- because a US territory?
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Chamorro Time Zone'
},
'vlat' = {
	abbr = 'VLAT',
	dst_abbr = ,
	utc_offset = '10:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Vladivostok Time'
},
'sret' = {
	abbr = 'SRET',
	dst_abbr = ,
	utc_offset = '11:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Srednekolymsk Time'
},
'nzst' = {
	abbr = 'NZST',
	dst_abbr = 'NZDT',
	utc_offset = '12:00',
	df = 'dmy',
	dst_begins = 'last Sunday in September',
	dst_ends = 'first Sunday in April',
	dst_time = '02:00',															-- begins at 02:00 NZST
	dst_e_time = '03:00',														-- ends at 02:00 NZST which is 03:00 NZDT
	article = 'Time in New Zealand'
},
'pett' = {
	abbr = 'PETT',
	dst_abbr = ,
	utc_offset = '12:00',
	df = 'dmy',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Kamchatka Time'
},
'idle' = {																	-- international dateline east
	abbr = 'IDLE',
	dst_abbr = ,
	utc_offset = '12:00',
	df = 'iso',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'UTC+12:00'
},
--------------------------------------------------------------------------------
'pmst' = {
	abbr = 'PMST',
	dst_abbr = 'PMDT',
	utc_offset = '-03:00',
	df = 'dmy',																	-- because France
	dst_begins = '2nd Sunday in March',											-- North American rules
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'UTC−03:00'
},
'wgt' = {																		-- western greenland time?  Not for Thule Airbase which observes US DST rules; requires own properties
	abbr = 'WGT',
	dst_abbr = 'WGST',															-- ??? what is the correct abbreviation?
	utc_offset = '-03:00',
	df = 'dmy',
	dst_begins = 'last Sunday in March',
	dst_ends = 'last Sunday in October',
	dst_time = '01:00 UTC',
	article = 'Time in Denmark'
},
'nst' = {
	abbr = 'NST',
	dst_abbr = 'NDT',
	utc_offset = '-03:30',
	df = 'dmy',
	dst_begins = '2nd Sunday in March',
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'Newfoundland Standard Time'
},
'ast' = {
	abbr = 'AST',
	dst_abbr = 'ADT',
	utc_offset = '-04:00',
	df = 'dmy',
	dst_begins = '2nd Sunday in March',
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'Atlantic Time Zone'
},
'est' = {
	abbr = 'EST',
	dst_abbr = 'EDT',
	utc_offset = '-05:00',
	df = 'mdy',
	dst_begins = '2nd Sunday in March',
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'Eastern Time Zone'
},
'cst' = {
	abbr = 'CST',
	dst_abbr = 'CDT',
	utc_offset = '-06:00',
	df = 'mdy',
	dst_begins = '2nd Sunday in March',
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'Central Time Zone'
},
'mst' = {
	abbr = 'MST',
	dst_abbr = 'MDT',
	utc_offset = '-07:00',
	df = 'mdy',
	dst_begins = '2nd Sunday in March',
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'Mountain Time Zone'
},
'pst' = {
	abbr = 'PST',
	dst_abbr = 'PDT',
	utc_offset = '-08:00',
	df = 'mdy',
	dst_begins = '2nd Sunday in March',
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'Pacific Time Zone'
},
'akst' = {
	abbr = 'AKST',
	dst_abbr = 'AKDT',
	utc_offset = '-09:00',
	df = 'mdy',
	dst_begins = '2nd Sunday in March',
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'Alaska Time Zone'
},
'hast' = {	-- same as AleutST and HST
	abbr = 'HAST',
	dst_abbr = 'HADT',
	utc_offset = '-10:00',
	df = 'mdy',
	dst_begins = '2nd Sunday in March',
	dst_ends = '1st Sunday in November',
	dst_time = '02:00',
	article = 'Hawaii–Aleutian Time Zone'
},
'idlw' = {																	-- international dateline west
	abbr = 'IDLW',
	dst_abbr = ,
	utc_offset = '-12:00',
	df = 'iso',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'UTC−12:00'
},
'aoe' = {																		-- last location for any date
	abbr = 'AoE',
	dst_abbr = ,
	utc_offset = '-12:00',
	df = 'iso',
	dst_begins = ,
	dst_ends = ,
	dst_time = ,
	article = 'Anywhere on Earth'
},
--------------------------------------------------------------------------------------------
-- website=Greenwich Mean Time
--http://astro.ukho.gov.uk/nao/miscellanea/WMTZ/Wmtz160224.pdf
'a' = {abbr = 'A', utc_offset = '01:00', df = 'iso', article = 'List of military time zones'},
'b' = {abbr = 'B', utc_offset = '02:00', df = 'iso', article = 'List of military time zones'},
'c' = {abbr = 'C', utc_offset = '03:00', df = 'iso', article = 'List of military time zones'},
'c*' = {abbr = 'C*', utc_offset = '03:30', df = 'iso', article = 'List of military time zones'},
'd' = {abbr = 'D', utc_offset = '04:00', df = 'iso', article = 'List of military time zones'},
'd*' = {abbr = 'D*', utc_offset = '04:30', df = 'iso', article = 'List of military time zones'},
'e' = {abbr = 'E', utc_offset = '05:00', df = 'iso', article = 'List of military time zones'},
'e*' = {abbr = 'E*', utc_offset = '05:30', df = 'iso', article = 'List of military time zones'},
'e+' = {abbr = 'E†', utc_offset = '05:45', df = 'iso', article = 'List of military time zones'},
'f' = {abbr = 'F', utc_offset = '06:00', df = 'iso', article = 'List of military time zones'},
'f*' = {abbr = 'F*', utc_offset = '06:30', df = 'iso', article = 'List of military time zones'},
'g' = {abbr = 'G', utc_offset = '07:00', df = 'iso', article = 'List of military time zones'},
'h' = {abbr = 'H', utc_offset = '08:00', df = 'iso', article = 'List of military time zones'},
'h*' = {abbr = 'H*', utc_offset = '08:30', df = 'iso', article = 'List of military time zones'},
'i' = {abbr = 'I', utc_offset = '09:00', df = 'iso', article = 'List of military time zones'},
'i*' = {abbr = 'I*', utc_offset = '09:30', df = 'iso', article = 'List of military time zones'},
'k' = {abbr = 'K', utc_offset = '10:00', df = 'iso', article = 'List of military time zones'},
'k*' = {abbr = 'K*', utc_offset = '10:30', df = 'iso', article = 'List of military time zones'},
'l' = {abbr = 'L', utc_offset = '11:00', df = 'iso', article = 'List of military time zones'},
'l*' = {abbr = 'L*', utc_offset = '11:30', df = 'iso', article = 'List of military time zones'},
'm' = {abbr = 'M', utc_offset = '12:00', df = 'iso', article = 'List of military time zones'},
'm++' = {abbr = 'M‡', utc_offset = '12:45', df = 'iso', article = 'List of military time zones'},
'm*' = {abbr = 'M*', utc_offset = '13:00', df = 'iso', article = 'List of military time zones'},
'm+' = {abbr = 'M†', utc_offset = '14:00', df = 'iso', article = 'List of military time zones'},
'n' = {abbr = 'N', utc_offset = '-01:00', df = 'iso', article = 'List of military time zones'},
'o' = {abbr = 'O', utc_offset = '-02:00', df = 'iso', article = 'List of military time zones'},
'p' = {abbr = 'P', utc_offset = '-03:00', df = 'iso', article = 'List of military time zones'},
'p*' = {abbr = 'P*', utc_offset = '-03:30', df = 'iso', article = 'List of military time zones'},
'q' = {abbr = 'Q', utc_offset = '-04:00', df = 'iso', article = 'List of military time zones'},
'q*' = {abbr = 'Q*', utc_offset = '-04:30', df = 'iso', article = 'List of military time zones'},
'r' = {abbr = 'R', utc_offset = '-05:00', df = 'iso', article = 'List of military time zones'},
's' = {abbr = 'S', utc_offset = '-06:00', df = 'iso', article = 'List of military time zones'},
't' = {abbr = 'T', utc_offset = '-07:00', df = 'iso', article = 'List of military time zones'},
'u' = {abbr = 'U', utc_offset = '-08:00', df = 'iso', article = 'List of military time zones'},
'u*' = {abbr = 'U*', utc_offset = '-08:30', df = 'iso', article = 'List of military time zones'},
'v' = {abbr = 'V', utc_offset = '-09:00', df = 'iso', article = 'List of military time zones'},
'v*' = {abbr = 'V*', utc_offset = '-09:30', df = 'iso', article = 'List of military time zones'},
'w' = {abbr = 'W', utc_offset = '-10:00', df = 'iso', article = 'List of military time zones'},
'x' = {abbr = 'X', utc_offset = '-11:00', df = 'iso', article = 'List of military time zones'},
'y' = {abbr = 'Y', utc_offset = '-12:00', df = 'iso', article = 'List of military time zones'},
'z' = {abbr = 'Z', utc_offset = '±00:00', df = 'iso', article = 'List of military time zones'},
--------------------------------------------------------------------------------------
-- this table entry filled by the code in time()
'utc_offsets' = {abbr = , utc_offset = , df = 'iso', article = },
};																				-- end of tz_data table
----------------------------------------------------------------------------
return {
	cfg = cfg,
	tz_aliases = tz_aliases,
	tz_data = tz_data,
	}