static internal string ConvertToLocalTime(string SourceTimeZone, TimeZone ClientTimeZone, DateTime DateTimeValue)
{
string sLocalTime = Convert.ToString(DateTimeValue);
switch (SourceTimeZone.ToUpper()[0])
{
case 'E':
switch (ClientTimeZone.StandardName[0])
{
case 'E':
sLocalTime = sLocalTime;
break;
case 'C':
sLocalTime = DateTimeValue.AddHours(-1).ToString();
break;
case 'M':
sLocalTime = DateTimeValue.AddHours(-2).ToString();
break;
case 'P':
sLocalTime = DateTimeValue.AddHours(-3).ToString();
break;
}
break;
case 'C':
switch (ClientTimeZone.StandardName[0])
{
case 'E':
sLocalTime = DateTimeValue.AddHours(+1).ToString();
break;
case 'C':
sLocalTime = sLocalTime;
break;
case 'M':
sLocalTime = DateTimeValue.AddHours(-1).ToString();
break;
case 'P':
sLocalTime = DateTimeValue.AddHours(-2).ToString();
break;
}
break;
case 'M':
switch (ClientTimeZone.StandardName[0])
{
case 'E':
sLocalTime = DateTimeValue.AddHours(+2).ToString();
break;
case 'C':
sLocalTime = DateTimeValue.AddHours(+1).ToString();
break;
case 'M':
sLocalTime = sLocalTime;
break;
case 'P':
sLocalTime = DateTimeValue.AddHours(-1).ToString();
break;
}
break;
case 'P':
switch (ClientTimeZone.StandardName[0])
{
case 'E':
sLocalTime = DateTimeValue.AddHours(+3).ToString();
break;
case 'C':
sLocalTime = DateTimeValue.AddHours(+2).ToString();
break;
case 'M':
sLocalTime = DateTimeValue.AddHours(+1).ToString();
break;
case 'P':
sLocalTime = sLocalTime;
break;
}
break;
}
return sLocalTime;
}