99 lines
2.8 KiB
C#

/*********************************************************************************************
* Copyright 2004 - Volian Enterprises, Inc. All rights reserved.
* Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE
* ------------------------------------------------------------------------------
* $Workfile: VEdt.cs $ $Revision: 1 $
* $Author: Kathy $ $Date: 7/27/04 8:35a $
*
* $History: VEdt.cs $
*
* ***************** Version 1 *****************
* User: Kathy Date: 7/27/04 Time: 8:35a
* Created in $/LibSource/Utils
*********************************************************************************************/
using System;
namespace Utils
{
/// <summary>
/// Summary description for VEdt.
/// </summary>
public class VEDateTime
{
public DateTime dt;
public string dtstr;
public VEDateTime(long tm)
{
System.Globalization.CultureInfo info =
new System.Globalization.CultureInfo("en-US", false);
System.Globalization.Calendar calendar = info.Calendar;
// do some conversion so that proms will be able to use this
// date/time. Proms had it in seconds since 00:00:00 1/1/1970.
// .NET has it in ticks since 00:00:00 1/1/1
DateTime promsdt = new DateTime(1970,1,1,0,0,0,0); // Jan 1, 1970
//
// Get the offset time between this time zone and UTC (GMT) time.
// Convert the offset to seconds.
// Subtract the offset from the UTC time gotten for Jan 1, 1970
ThisTimeZone TZ = new ThisTimeZone();
TimeSpan TimeZoneSpan = TZ.GetUtcOffset(promsdt); // Time Zone offset from UTC
long TimeZoneAdj = Math.Abs(TimeZoneSpan.Ticks / 10000000); // convert to seconds
DateTime cnv = promsdt.AddSeconds(tm-TimeZoneAdj);
dtstr = cnv.ToLongDateString() + " " + cnv.ToLongTimeString();
}
}
/*
* TimeZone is an Abstract Class. You need to inherit the TimeZone Class
* and overload a couple of it's functions in order to use it.
* - called in CalculatePromsDate() above.
*/
public class ThisTimeZone : TimeZone
{
private TimeZone curTZ;
public TimeSpan SpanTZ;
public ThisTimeZone()
{
curTZ = CurrentTimeZone; // local timezone
}
// get the UTC (GMT) value for the given date/time
public override TimeSpan GetUtcOffset(DateTime ForThisDate)
{
SpanTZ = curTZ.GetUtcOffset(ForThisDate);
return SpanTZ;
}
// Name of the local Daylight savings time zone
public override string DaylightName
{
get
{
return curTZ.DaylightName;
}
}
// Name of the local standard time zone
public override string StandardName
{
get
{
return curTZ.StandardName;
}
}
// Get the start and end dates for daylight savings
public override System.Globalization.DaylightTime GetDaylightChanges(int year)
{
return curTZ.GetDaylightChanges(year);
}
}
}