Eliminate TimeZoneInfo

This commit is contained in:
2025-04-16 22:24:31 -04:00
parent 97675da2b3
commit 449b3743a9
3 changed files with 102 additions and 111 deletions

View File

@@ -1,89 +1,89 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MarketData.Utils;
using System.Collections.ObjectModel;
// using System;
// using System.Collections.Generic;
// using System.Linq;
// using System.Text;
// using System.Threading.Tasks;
// using MarketData.Utils;
// using System.Collections.ObjectModel;
namespace MarketData.Helper
{
public class TimeZoneHelper
{
private DateGenerator dateGenerator=new DateGenerator();
private DateTime startDate;
private DateTime endDate;
private DateTime prevBusinessDate;
private DateTime easternTime;
private TimeZoneInfo localZone = TimeZoneInfo.Local;
private TimeZone currentTimeZone=TimeZone.CurrentTimeZone;
private static TimeZoneInfo easternTimeZone = GetEasternTimeZone();
// namespace MarketData.Helper
// {
// public class TimeZoneHelper
// {
// private DateGenerator dateGenerator=new DateGenerator();
// private DateTime startDate;
// private DateTime endDate;
// private DateTime prevBusinessDate;
// private DateTime easternTime;
// private TimeZoneInfo localZone = TimeZoneInfo.Local;
// private TimeZone currentTimeZone=TimeZone.CurrentTimeZone;
// private static TimeZoneInfo easternTimeZone = GetEasternTimeZone();
public TimeZoneHelper()
{
startDate=DateTime.Now;
endDate = startDate; // the most recent date
prevBusinessDate=startDate;
prevBusinessDate = dateGenerator.GetPrevBusinessDay(endDate);
easternTime=new DateTime(prevBusinessDate.Year,prevBusinessDate.Month,prevBusinessDate.Day,20,30,0);
// public TimeZoneHelper()
// {
// startDate=DateTime.Now;
// endDate = startDate; // the most recent date
// prevBusinessDate=startDate;
// prevBusinessDate = dateGenerator.GetPrevBusinessDay(endDate);
// easternTime=new DateTime(prevBusinessDate.Year,prevBusinessDate.Month,prevBusinessDate.Day,20,30,0);
if(!currentTimeZone.DaylightName.Equals("Eastern Daylight Time")&&!currentTimeZone.DaylightName.Equals("Eastern Time (US & Canada)"))
{
easternTime=TimeZoneInfo.ConvertTimeToUtc(new DateTime(easternTime.Year,easternTime.Month,easternTime.Day,20,30,0),easternTimeZone);
}
if(prevBusinessDate.Equals(endDate)&&DateTime.Now.TimeOfDay<new TimeSpan(easternTime.Hour,easternTime.Minute,easternTime.Second))
{
prevBusinessDate=dateGenerator.FindPrevBusinessDay(prevBusinessDate);
}
}
public TimeZoneHelper(DateTime startDate)
{
this.startDate=startDate;
endDate = startDate; // the most recent date
prevBusinessDate=startDate;
prevBusinessDate = dateGenerator.GetPrevBusinessDay(endDate);
easternTime=new DateTime(prevBusinessDate.Year,prevBusinessDate.Month,prevBusinessDate.Day,20,30,0);
if(!currentTimeZone.DaylightName.Equals("Eastern Daylight Time")&&!currentTimeZone.DaylightName.Equals("Eastern Time (US & Canada)"))
{
easternTime = TimeZoneInfo.ConvertTimeToUtc(new DateTime(easternTime.Year, easternTime.Month, easternTime.Day, 20, 30, 0), easternTimeZone);
}
if(prevBusinessDate.Equals(endDate)&&DateTime.Now.TimeOfDay<new TimeSpan(easternTime.Hour,easternTime.Minute,easternTime.Second))
{
prevBusinessDate=dateGenerator.FindPrevBusinessDay(prevBusinessDate);
}
}
private static TimeZoneInfo GetEasternTimeZone()
{
TimeZoneInfo timeZoneInfo = null;
ReadOnlyCollection<TimeZoneInfo> timeZones;
timeZones= TimeZoneInfo.GetSystemTimeZones();
for (int index = 0; index < timeZones.Count; index++)
{
timeZoneInfo = timeZones[index];
if (timeZoneInfo.DisplayName.Equals("Eastern Daylight Time")||timeZoneInfo.DisplayName.Equals("Eastern Time (US & Canada)")||
timeZoneInfo.DaylightName.Equals("Eastern Daylight Time")||timeZoneInfo.StandardName.Equals("Eastern Standard Time")) break;
}
return timeZoneInfo;
}
public DateTime StartDate
{
get{return startDate;}
}
public DateTime EndDate
{
get{return endDate;}
}
public DateTime PrevBusinessDate
{
get{return prevBusinessDate;}
}
public DateTime EasternTime
{
get{return easternTime;}
}
public DateGenerator DateGenerator
{
get{return dateGenerator;}
}
}
}
// if(!currentTimeZone.DaylightName.Equals("Eastern Daylight Time")&&!currentTimeZone.DaylightName.Equals("Eastern Time (US & Canada)"))
// {
// easternTime=TimeZoneInfo.ConvertTimeToUtc(new DateTime(easternTime.Year,easternTime.Month,easternTime.Day,20,30,0),easternTimeZone);
// }
// if(prevBusinessDate.Equals(endDate)&&DateTime.Now.TimeOfDay<new TimeSpan(easternTime.Hour,easternTime.Minute,easternTime.Second))
// {
// prevBusinessDate=dateGenerator.FindPrevBusinessDay(prevBusinessDate);
// }
// }
// public TimeZoneHelper(DateTime startDate)
// {
// this.startDate=startDate;
// endDate = startDate; // the most recent date
// prevBusinessDate=startDate;
// prevBusinessDate = dateGenerator.GetPrevBusinessDay(endDate);
// easternTime=new DateTime(prevBusinessDate.Year,prevBusinessDate.Month,prevBusinessDate.Day,20,30,0);
// if(!currentTimeZone.DaylightName.Equals("Eastern Daylight Time")&&!currentTimeZone.DaylightName.Equals("Eastern Time (US & Canada)"))
// {
// easternTime = TimeZoneInfo.ConvertTimeToUtc(new DateTime(easternTime.Year, easternTime.Month, easternTime.Day, 20, 30, 0), easternTimeZone);
// }
// if(prevBusinessDate.Equals(endDate)&&DateTime.Now.TimeOfDay<new TimeSpan(easternTime.Hour,easternTime.Minute,easternTime.Second))
// {
// prevBusinessDate=dateGenerator.FindPrevBusinessDay(prevBusinessDate);
// }
// }
// private static TimeZoneInfo GetEasternTimeZone()
// {
// TimeZoneInfo timeZoneInfo = null;
// ReadOnlyCollection<TimeZoneInfo> timeZones;
// timeZones= TimeZoneInfo.GetSystemTimeZones();
// for (int index = 0; index < timeZones.Count; index++)
// {
// timeZoneInfo = timeZones[index];
// if (timeZoneInfo.DisplayName.Equals("Eastern Daylight Time")||timeZoneInfo.DisplayName.Equals("Eastern Time (US & Canada)")||
// timeZoneInfo.DaylightName.Equals("Eastern Daylight Time")||timeZoneInfo.StandardName.Equals("Eastern Standard Time")) break;
// }
// return timeZoneInfo;
// }
// public DateTime StartDate
// {
// get{return startDate;}
// }
// public DateTime EndDate
// {
// get{return endDate;}
// }
// public DateTime PrevBusinessDate
// {
// get{return prevBusinessDate;}
// }
// public DateTime EasternTime
// {
// get{return easternTime;}
// }
// public DateGenerator DateGenerator
// {
// get{return dateGenerator;}
// }
// }
// }