using System; using System.Collections.Generic; using System.Text; class Program { static void Main(string[] args) { DateTime dt = new DateTime(2004, 10, 17); dt.AddMonths(2); // Month is now December. Console.WriteLine("Daylight savings: {0}", dt.IsDaylightSavingTime()); } }
Development Class
Current date and time
using System; using System.Globalization; class MainClass { public static void Main() { Console.WriteLine("Current Date and Time: {0}", DateTime.Now.ToString()); Console.WriteLine("Current Date Only: {0}", DateTime.Today.ToString()); } }
Converts a Date to a string using relative time.
//Microsoft Public License (Ms-PL)
//http://visualizer.codeplex.com/license
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Redwerb.BizArk.Core.DateExt
{
///
///
public static class DateExt
{
///
///
///
///
public static string ToRelativeTimeString(this DateTime value)
{
const int SECOND = 1;
const int MINUTE = 60 * SECOND;
const int HOUR = 60 * MINUTE;
const int DAY = 24 * HOUR;
const int MONTH = 30 * DAY;
var ts = DateTime.Now.Subtract(value);
double seconds = ts.TotalSeconds;
// Less than one minute
if (seconds < 1 * MINUTE)
return ts.Seconds == 1 ? "one second ago" : ts.Seconds + " seconds ago";
if (seconds < 60 * MINUTE)
return ts.Minutes + " minutes ago";
if (seconds < 120 * MINUTE)
return "an hour ago";
if (seconds < 24 * HOUR)
return ts.Hours + " hours ago";
if (seconds < 48 * HOUR)
return "yesterday";
if (seconds < 30 * DAY)
return ts.Days + " days ago";
if (seconds < 12 * MONTH)
{
int months = System.Convert.ToInt32(Math.Floor((double)ts.Days / 30));
return months <= 1 ? "one month ago" : months + " months ago";
}
int years = System.Convert.ToInt32(Math.Floor((double)ts.Days / 365));
return years <= 1 ? "one year ago" : years + " years ago";
}
}
}
[/csharp]
Is given DateTime Weekend
using System; using System.Collections.Generic; using System.Linq; using System.Text; public static class DateTimeExt { public static bool Ext_IsWeekend(this DateTime value) { return (value.DayOfWeek == DayOfWeek.Sunday || value.DayOfWeek == DayOfWeek.Saturday); } }
Get Elapsed Time
using System; using System.Collections.Generic; using System.Text; public static class TimingUtilities { private static long ticks; public static void startTimer() { ticks = DateTime.Now.Ticks; } public static double GetElapsedTime() { return (DateTime.Now.Ticks - ticks) / Math.Pow(10, 4); } }
Convert Unix Seconds
#region License // Copyright (c) 2007 James Newton-King // // Permission is hereby granted, free of charge, to any person // obtaining a copy of this software and associated documentation // files (the "Software"), to deal in the Software without // restriction, including without limitation the rights to use, // copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following // conditions: // // The above copyright notice and this permission notice shall be // included in all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, // WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR // OTHER DEALINGS IN THE SOFTWARE. #endregion using System; using System.Collections.Generic; using System.Globalization; using System.Text; using System.Data.SqlTypes; namespace Newtonsoft.Utilities.Time { public static class DateTimeUtils { public static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0); public static DateTime ToSqlServerPrecision(DateTime value) { SqlDateTime sqlValue = new SqlDateTime(value); return sqlValue.Value; } public static DateTime ConvertUnixSeconds(long unixSeconds, long residualNanoseconds) { DateTime actualDateTime = ConvertUnixSeconds(unixSeconds); long ticks = residualNanoseconds / 100; return actualDateTime.AddTicks(ticks); } public static DateTime ConvertUnixSeconds(long unixSeconds) { return UnixEpoch.AddSeconds(unixSeconds); } public static string ToFileSortableDateTime(DateTime value) { return value.ToString("yyyyMMdd'T'HHmmss", CultureInfo.CurrentCulture); } public static DateTime FromFileSortableDateTime(string value) { return DateTime.ParseExact(value, "yyyyMMdd'T'HHmmss", CultureInfo.CurrentCulture); } } }
Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value.
//http://www.bouncycastle.org/ //MIT X11 License using System; namespace Org.BouncyCastle.Utilities.Date { public class DateTimeUtilities { public static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1); private DateTimeUtilities() { } /// <summary> /// Return the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC) for a given DateTime value. /// </summary> /// <param name="dateTime">A UTC DateTime value not before epoch.</param> /// <returns>Number of whole milliseconds after epoch.</returns> /// <exception cref="ArgumentException">'dateTime' is before epoch.</exception> public static long DateTimeToUnixMs(DateTime dateTime) { if (dateTime.CompareTo(UnixEpoch) < 0) throw new ArgumentException("DateTime value may not be before the epoch", "dateTime"); return (dateTime.Ticks - UnixEpoch.Ticks) / TimeSpan.TicksPerMillisecond; } /// <summary> /// Create a DateTime value from the number of milliseconds since the Unix epoch (1 Jan., 1970 UTC). /// </summary> /// <param name="unixMs">Number of milliseconds since the epoch.</param> /// <returns>A UTC DateTime value</returns> public static DateTime UnixMsToDateTime(long unixMs) { return new DateTime(unixMs * TimeSpan.TicksPerMillisecond + UnixEpoch.Ticks); } /// <summary> /// Return the current number of milliseconds since the Unix epoch (1 Jan., 1970 UTC). /// </summary> public static long CurrentUnixMs() { return DateTimeToUnixMs(DateTime.UtcNow); } } }