|
|
|
@ -1,6 +1,9 @@ |
|
|
|
using System; |
|
|
|
using System.Linq; |
|
|
|
using System.Globalization; |
|
|
|
using System.Text; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Text.RegularExpressions; |
|
|
|
|
|
|
|
namespace Microsoft.Windows.Controls |
|
|
|
{ |
|
|
|
@ -52,11 +55,9 @@ namespace Microsoft.Windows.Controls |
|
|
|
|
|
|
|
private string ResolveDateTimeString(string dateTime, DateTime currentDate) |
|
|
|
{ |
|
|
|
// 1/1/0001 12:00:00 AM
|
|
|
|
string[] dateParts = new string[3] { currentDate.Month.ToString(), currentDate.Day.ToString(), currentDate.Year.ToString() }; |
|
|
|
Dictionary<string, string> dateParts = GetDateParts(currentDate); |
|
|
|
string[] timeParts = new string[3] { currentDate.Hour.ToString(), currentDate.Minute.ToString(), currentDate.Second.ToString() }; |
|
|
|
string designator = "AM"; |
|
|
|
|
|
|
|
string designator = ""; |
|
|
|
string[] dateTimeSeparators = new string[] { ",", " ", "-", DateTimeFormatInfo.DateSeparator, DateTimeFormatInfo.TimeSeparator }; |
|
|
|
|
|
|
|
var dateTimeParts = dateTime.Split(dateTimeSeparators, StringSplitOptions.RemoveEmptyEntries).ToList(); |
|
|
|
@ -72,14 +73,15 @@ namespace Microsoft.Windows.Controls |
|
|
|
if (!format.Contains("ddd") && !format.Contains("GMT")) |
|
|
|
{ |
|
|
|
if (format.Contains("M")) |
|
|
|
dateParts[0] = dateTimeParts[i]; |
|
|
|
dateParts["Month"] = dateTimeParts[i]; |
|
|
|
else if (format.Contains("d")) |
|
|
|
dateParts[1] = dateTimeParts[i]; |
|
|
|
dateParts["Day"] = dateTimeParts[i]; |
|
|
|
else if (format.Contains("y")) |
|
|
|
{ |
|
|
|
dateParts[2] = dateTimeParts[i]; |
|
|
|
if (dateParts[2].Length == 2) |
|
|
|
dateParts[2] = string.Format("{0}{1}", currentDate.Year / 100, dateParts[2]); |
|
|
|
dateParts["Year"] = dateTimeParts[i]; |
|
|
|
|
|
|
|
if (dateParts["Year"].Length == 2) |
|
|
|
dateParts["Year"] = string.Format("{0}{1}", currentDate.Year / 100, dateParts["Year"]); |
|
|
|
} |
|
|
|
else if (format.Contains("h") || format.Contains("H")) |
|
|
|
timeParts[0] = dateTimeParts[i]; |
|
|
|
@ -92,12 +94,41 @@ namespace Microsoft.Windows.Controls |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var date = string.Join(DateTimeFormatInfo.DateSeparator, dateParts); |
|
|
|
var date = string.Join(DateTimeFormatInfo.DateSeparator, dateParts.Select(x => x.Value).ToArray()); |
|
|
|
var time = string.Join(DateTimeFormatInfo.TimeSeparator, timeParts); |
|
|
|
|
|
|
|
return String.Format("{0} {1} {2}", date, time, designator); |
|
|
|
} |
|
|
|
|
|
|
|
private Dictionary<string, string> GetDateParts(DateTime currentDate) |
|
|
|
{ |
|
|
|
Dictionary<string, string> dateParts = new Dictionary<string, string>(); |
|
|
|
var dateFormatParts = DateTimeFormatInfo.ShortDatePattern.Split(new string[] { DateTimeFormatInfo.DateSeparator }, StringSplitOptions.RemoveEmptyEntries).ToList(); |
|
|
|
dateFormatParts.ForEach(item => |
|
|
|
{ |
|
|
|
string key = string.Empty; |
|
|
|
string value = string.Empty; |
|
|
|
|
|
|
|
if (item.Contains("M")) |
|
|
|
{ |
|
|
|
key = "Month"; |
|
|
|
value = currentDate.Month.ToString(); |
|
|
|
} |
|
|
|
else if (item.Contains("d")) |
|
|
|
{ |
|
|
|
key = "Day"; |
|
|
|
value = currentDate.Day.ToString(); |
|
|
|
} |
|
|
|
else if (item.Contains("y")) |
|
|
|
{ |
|
|
|
key = "Year"; |
|
|
|
value = currentDate.Year.ToString(); |
|
|
|
} |
|
|
|
dateParts.Add(key, value); |
|
|
|
}); |
|
|
|
return dateParts; |
|
|
|
} |
|
|
|
|
|
|
|
#endregion // Methods
|
|
|
|
} |
|
|
|
} |
|
|
|
|