namespace ConsoleApplication
{
using System;
using Microshaoft;
public class Class1
{
static void Main(string[] args)
{
DateTime x = DateTime.Now;
x = new DateTime(2008,1,1,13,1,1,1);
string s = DateTimeHelper.Get_yyyyMMddHHmmss_String(x);
Console.WriteLine(s);
Console.WriteLine(DateTimeHelper.Parse_yyyyMMddHHmmss(s));
Console.WriteLine(DateTimeHelper.Parse_MMddHHmmss(2008, s.Substring(4, 10)));
x = DateTime.Now.AddSeconds(5);
Console.WriteLine(DateTimeHelper.Get_yyyyMMddHHmmss_String(x));
while ("q" != Console.ReadLine())
{
Console.WriteLine(DateTimeHelper.SecondsDiffNow(x));
DateTime dt = DateTime.Now;
Console.WriteLine(DateTimeHelper.GetAlignSecondsDateTime(dt, 7 * 60));
}
Console.WriteLine(Environment.Version.ToString());
}
}
}
namespace Microshaoft
{
using System;
using System.Globalization;
public static class DateTimeHelper
{
public static bool IsVaildateTimestamp(DateTime timeStamp, int timeoutSeconds)
{
long l = SecondsDiffNow(timeStamp);
return ((l > 0) && (l < timeoutSeconds));
}
public static long MillisecondsDiffNow(DateTime time)
{
long now = DateTime.Now.Ticks;
long t = time.Ticks;
return (t - now)/10000;
}
public static long SecondsDiffNow(DateTime time)
{
return MillisecondsDiffNow(time)/1000;
}
public static DateTime GetAlignSecondsDateTime(DateTime time, long alignSeconds)
{
long ticks = time.Ticks;
ticks -= ticks % (10000 * 1000 * alignSeconds);
DateTime dt = new DateTime(ticks);
return dt ;
}
public static string Get_MMddHHmmss_String(DateTime time)
{
return time.ToString("MMddHHmmss");
}
public static string Get_yyyyMMddHHmmss_String(DateTime time)
{
return time.ToString("yyyyMMddHHmmss");
}
public static string Get_yyyyMMdd_String(DateTime time)
{
return time.ToString("yyyyMMdd");
}
public static DateTime Parse_yyyyMMddHHmmss(string text)
{
DateTime time = DateTime.TryParseExact
(
text
, "yyyyMMddHHmmss"
, DateTimeFormatInfo.InvariantInfo
, DateTimeStyles.None
, out time
) ? time : DateTime.MinValue;
return time;
}
public static DateTime Parse_MMddHHmmss(int year, string text)
{
return Parse_yyyyMMddHHmmss(year.ToString("0000") + text);
}
}
}
|