public override string ToString()
{
if (Skip != DateTimeSkips.None)
{
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CurrentUICulture;
List<string> shortDatePattern = new List<string>(culture.DateTimeFormat.ShortDatePattern.Split(new string[] { culture.DateTimeFormat.DateSeparator }, StringSplitOptions.RemoveEmptyEntries));
List<string> shortTimePattern = new List<string>(culture.DateTimeFormat.LongTimePattern.Split(new string[] { culture.DateTimeFormat.TimeSeparator }, StringSplitOptions.RemoveEmptyEntries));
if ((Skip & DateTimeSkips.Year) != 0)
{
shortDatePattern.Remove("yyyy");
}
if ((Skip & DateTimeSkips.Month) != 0)
{
shortDatePattern.Remove("M");
}
if ((Skip & DateTimeSkips.Day) != 0)
{
shortDatePattern.Remove("d");
}
if ((Skip & DateTimeSkips.Hour) != 0)
{
shortTimePattern.Remove("H");
}
if ((Skip & DateTimeSkips.Minute) != 0)
{
shortTimePattern.Remove("mm");
}
if ((Skip & DateTimeSkips.Second) != 0 ||
(shortTimePattern.Count == 1 && Value.Second == 0))
{
shortTimePattern.Remove("ss");
}
string format = null;
if (shortDatePattern.Count != 0)
{
format = string.Join(culture.DateTimeFormat.DateSeparator, shortDatePattern.ToArray());
}
if (shortTimePattern.Count != 0)
{
if (format != null)
{
format += " ";
}
format += string.Join(culture.DateTimeFormat.TimeSeparator, shortTimePattern.ToArray());
}
if (format == "H")
{
return Value.Hour.ToString();
}
if (format == null)
{
return "";
}
return Value.LocalDateTime.ToString(format);
}
return Value.LocalDateTime.ToString();
}