view MetroWpf/MetroWpf.Xaml/Converters/DateTimeToStringConverter.cs @ 104:4cfdecdb1d12

Silverlight Glimpse now lives on codeplex, StockDisplay lives on Google code
author stevenhollidge <stevenhollidge@hotmail.com>
date Sun, 06 May 2012 12:16:38 +0100
parents 060f02cd4591
children
line wrap: on
line source

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
  }
}