Timezone getTimezoneData(
const
String code){
if
(code==F(
"AETZ"
)){
TimeChangeRule aEDT = {
"AEDT"
, First, Sun, Oct, 2, 660};
TimeChangeRule aEST = {
"AEST"
, First, Sun, Apr, 3, 600};
Timezone tzTmp = Timezone(aEDT, aEST);
return
tzTmp;
}
else
if
(code==F(
"CET"
)){
TimeChangeRule CEST = {
"CEST"
, Last, Sun, Mar, 2, 120};
TimeChangeRule CET = {
"CET "
, Last, Sun, Oct, 3, 60};
Timezone tzTmp = Timezone(CEST, CET);
return
tzTmp;
}
else
if
(code==F(
"MSK"
)){
TimeChangeRule msk = {
"MSK"
, Last, Sun, Mar, 1, 180};
Timezone tzTmp = Timezone(msk);
return
tzTmp;
}
else
if
(code==F(
"UK"
)){
TimeChangeRule BST = {
"BST"
, Last, Sun, Mar, 1, 60};
TimeChangeRule GMT = {
"GMT"
, Last, Sun, Oct, 2, 0};
Timezone tzTmp = Timezone(BST, GMT);
return
tzTmp;
}
else
if
(code==F(
"USCTZ"
)){
TimeChangeRule usCDT = {
"CDT"
, Second, Sun, Mar, 2, -300};
TimeChangeRule usCST = {
"CST"
, First, Sun, Nov, 2, -360};
Timezone tzTmp = Timezone(usCDT, usCST);
return
tzTmp;
}
else
if
(code==F(
"USMTZ"
)){
TimeChangeRule usMDT = {
"MDT"
, Second, Sun, Mar, 2, -360};
TimeChangeRule usMST = {
"MST"
, First, Sun, Nov, 2, -420};
Timezone tzTmp = Timezone(usMDT, usMST);
return
tzTmp;
}
else
if
(code==F(
"ARIZONA"
)){
TimeChangeRule usMST = {
"MST"
, First, Sun, Nov, 2, -420};
Timezone tzTmp = Timezone(usMST);
return
tzTmp;
}
else
if
(code==F(
"USPTZ"
)){
TimeChangeRule usPDT = {
"PDT"
, Second, Sun, Mar, 2, -420};
TimeChangeRule usPST = {
"PST"
, First, Sun, Nov, 2, -480};
Timezone tzTmp = Timezone(usPDT, usPST);
return
tzTmp;
}
else
if
(code==F(
"UTC"
)){
TimeChangeRule utcRule = {
"UTC"
, Last, Sun, Mar, 1, 0};
Timezone tzTmp = Timezone(utcRule);
return
tzTmp;
}
else
{
int
to = timeOffset/60;
TimeChangeRule utcRule = {
"GTM"
, Last, Sun, Mar, 1, to};
Timezone tzTmp = Timezone(utcRule);
return
tzTmp;
}
}