diff MetroWpf/MetroWpf.Xaml/Converters/DateTimeToStringConverter.cs @ 15:060f02cd4591

Initial commit, pre airport work
author stevenh7776 stevenhollidge@hotmail.com
date Mon, 12 Mar 2012 23:05:21 +0800
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MetroWpf/MetroWpf.Xaml/Converters/DateTimeToStringConverter.cs	Mon Mar 12 23:05:21 2012 +0800
@@ -0,0 +1,47 @@
+namespace MetroWpf.Xaml.Converters
+{
+  using System;
+  using System.Globalization;
+  using System.Text;
+  using System.Windows.Data;
+
+  /// <summary>
+  /// Converts a Date and Time into a string for display.
+  /// </summary>
+  public class DateTimeToStringConverter : IValueConverter
+  {
+    #region IValueConverter Members
+
+    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+    {
+      var dateBuilder = new StringBuilder();
+      var dtValue = (DateTime)value;
+
+      DateTime now = DateTime.Now;
+      bool isToday = now.Date == dtValue.Date;
+      bool wasYesterday = now.Subtract(TimeSpan.FromDays(1)).Date == dtValue.Date;
+
+      if (isToday || wasYesterday)
+      {
+        dateBuilder.Append(dtValue.ToString("t", culture));
+        if (wasYesterday)
+        {
+          dateBuilder.Append(" yesterday");
+        }
+      }
+      else
+      {
+        dateBuilder.Append(dtValue.ToString("g"));
+      }
+
+      return dateBuilder.ToString();
+    }
+
+    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
+    {
+      throw new NotImplementedException();
+    }
+
+    #endregion
+  }
+}