internal static void ResolveAmpm(Dictionary <string, object> resolutionDic, string keyName) { if (resolutionDic.ContainsKey(keyName)) { var resolution = (Dictionary <string, string>)resolutionDic[keyName]; var resolutionPm = new Dictionary <string, string>(); if (!resolutionDic.ContainsKey(DateTimeResolutionKey.Timex)) { return; } var timex = (string)resolutionDic[DateTimeResolutionKey.Timex]; resolutionDic.Remove(keyName); resolutionDic.Add(keyName + "Am", resolution); switch ((string)resolutionDic[ResolutionKey.Type]) { case Constants.SYS_DATETIME_TIME: resolutionPm[ResolutionKey.Value] = DateTimeFormatUtil.ToPm(resolution[ResolutionKey.Value]); resolutionPm[DateTimeResolutionKey.Timex] = DateTimeFormatUtil.ToPm(timex); break; case Constants.SYS_DATETIME_DATETIME: var split = resolution[ResolutionKey.Value].Split(' '); resolutionPm[ResolutionKey.Value] = split[0] + " " + DateTimeFormatUtil.ToPm(split[1]); resolutionPm[DateTimeResolutionKey.Timex] = DateTimeFormatUtil.AllStringToPm(timex); break; case Constants.SYS_DATETIME_TIMEPERIOD: if (resolution.ContainsKey(DateTimeResolutionKey.Start)) { resolutionPm[DateTimeResolutionKey.Start] = DateTimeFormatUtil.ToPm(resolution[DateTimeResolutionKey.Start]); } if (resolution.ContainsKey(DateTimeResolutionKey.End)) { resolutionPm[DateTimeResolutionKey.End] = DateTimeFormatUtil.ToPm(resolution[DateTimeResolutionKey.End]); } resolutionPm[DateTimeResolutionKey.Timex] = DateTimeFormatUtil.AllStringToPm(timex); break; case Constants.SYS_DATETIME_DATETIMEPERIOD: if (resolution.ContainsKey(DateTimeResolutionKey.Start)) { var start = Convert.ToDateTime(resolution[DateTimeResolutionKey.Start], CultureInfo.InvariantCulture); start = start.Hour == Constants.HalfDayHourCount ? start.AddHours(-Constants.HalfDayHourCount) : start.AddHours(Constants.HalfDayHourCount); resolutionPm[DateTimeResolutionKey.Start] = DateTimeFormatUtil.FormatDateTime(start); } if (resolution.ContainsKey(DateTimeResolutionKey.End)) { var end = Convert.ToDateTime(resolution[DateTimeResolutionKey.End], CultureInfo.InvariantCulture); end = end.Hour == Constants.HalfDayHourCount ? end.AddHours(-Constants.HalfDayHourCount) : end.AddHours(Constants.HalfDayHourCount); resolutionPm[DateTimeResolutionKey.End] = DateTimeFormatUtil.FormatDateTime(end); } resolutionPm[DateTimeResolutionKey.Timex] = DateTimeFormatUtil.AllStringToPm(timex); break; } resolutionDic.Add(keyName + "Pm", resolutionPm); } }
internal static void ResolveAmpm(Dictionary <string, object> resolutionDic, string keyName) { if (resolutionDic.ContainsKey(keyName)) { var resolution = (Dictionary <string, string>)resolutionDic[keyName]; if (!resolutionDic.ContainsKey(DateTimeResolutionKey.Timex)) { return; } var timex = (string)resolutionDic[DateTimeResolutionKey.Timex]; resolutionDic.Remove(keyName); resolutionDic.Add(keyName + "Am", resolution); var resolutionPm = new Dictionary <string, string>(); switch ((string)resolutionDic[ResolutionKey.Type]) { case Constants.SYS_DATETIME_TIME: resolutionPm[ResolutionKey.Value] = DateTimeFormatUtil.ToPm(resolution[ResolutionKey.Value]); resolutionPm[DateTimeResolutionKey.Timex] = DateTimeFormatUtil.ToPm(timex); break; case Constants.SYS_DATETIME_DATETIME: var splited = resolution[ResolutionKey.Value].Split(' '); resolutionPm[ResolutionKey.Value] = splited[0] + " " + DateTimeFormatUtil.ToPm(splited[1]); resolutionPm[DateTimeResolutionKey.Timex] = DateTimeFormatUtil.AllStringToPm(timex); break; case Constants.SYS_DATETIME_TIMEPERIOD: if (resolution.ContainsKey(DateTimeResolutionKey.Start)) { resolutionPm[DateTimeResolutionKey.Start] = DateTimeFormatUtil.ToPm(resolution[DateTimeResolutionKey.Start]); } if (resolution.ContainsKey(DateTimeResolutionKey.End)) { resolutionPm[DateTimeResolutionKey.End] = DateTimeFormatUtil.ToPm(resolution[DateTimeResolutionKey.End]); } resolutionPm[DateTimeResolutionKey.Timex] = DateTimeFormatUtil.AllStringToPm(timex); break; case Constants.SYS_DATETIME_DATETIMEPERIOD: if (resolution.ContainsKey(DateTimeResolutionKey.Start)) { splited = resolution[DateTimeResolutionKey.Start].Split(' '); resolutionPm[DateTimeResolutionKey.Start] = splited[0] + " " + DateTimeFormatUtil.ToPm(splited[1]); } if (resolution.ContainsKey(DateTimeResolutionKey.End)) { splited = resolution[DateTimeResolutionKey.End].Split(' '); resolutionPm[DateTimeResolutionKey.End] = splited[0] + " " + DateTimeFormatUtil.ToPm(splited[1]); } resolutionPm[DateTimeResolutionKey.Timex] = DateTimeFormatUtil.AllStringToPm(timex); break; } resolutionDic.Add(keyName + "Pm", resolutionPm); } }