view UnixTimestamp.cs @ 51:c3b217a708f4

Re #24: Add limits * Add an absolute limit that isn't affected by the number it is a limit against * Add hashcode and equals implementations
author IBBoard <dev@ibboard.co.uk>
date Tue, 20 Oct 2009 19:48:37 +0000
parents cc7fae81afec
children
line wrap: on
line source

// This file (UnitTimestamp.cs) is a part of the IBBoard library and is copyright 2009 IBBoard.
//
// The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license.

using System;

namespace IBBoard
{
	/// <summary>
	/// Summary description for UnixTimestamp.
	/// </summary>
	public class UnixTimestamp
	{
		private long stamp;
		private static DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0).ToUniversalTime();

		public UnixTimestamp(DateTime date)
		{
			stamp = GetTimestamp(date);
		}

		public UnixTimestamp(long timestamp)
		{
			stamp = timestamp;
		}

		public DateTime GetDate()
		{
			return unixEpoch.AddSeconds(stamp);
		}

		public DateTime GetDate(int timestamp)
		{
			return unixEpoch.AddSeconds(timestamp);
		}

		public long GetTimestamp()
		{
			return stamp;
		}

		public static long GetTimestamp(DateTime date)
		{
			TimeSpan span = date.ToUniversalTime() - unixEpoch;
			return (long)span.TotalSeconds;
		}
	}
}