public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { try { var dt = (DateTime) value; Lunar lunar = new Lunar(dt); return lunar.GetOBOfDay(dt).LShX2; } catch (Exception) { return ""; } }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { try { var dt = (DateTime) value; Lunar lunar = new Lunar(dt); var a = lunar.GetOBOfDay(dt).LShX2; switch (a) { case "鼠": return ToUnicodeString(""); case "牛": return ToUnicodeString(""); case "虎": return ToUnicodeString(""); case "兔": return ToUnicodeString(""); case "龙": return ToUnicodeString(""); case "蛇": return ToUnicodeString(""); case "马": return ToUnicodeString(""); case "羊": return ToUnicodeString(""); case "猴": return ToUnicodeString(""); case "鸡": return ToUnicodeString(""); case "狗": return ToUnicodeString(""); case "猪": return ToUnicodeString(""); } return ""; } catch (Exception) { return ""; } }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { try { var dt = (DateTime) value; Lunar lunar = new Lunar(dt); var ob = lunar.GetOBOfDay(dt); switch (parameter.ToString()) { case "年": return ob.Lyear3; case "月": return ob.Lmonth2; case "日": return ob.Lday2; case "时": return ob.Ltime2; } return ob.Lyear3; } catch (Exception) { return ""; } }
private void UpdateDateTimes(DateTime dateTime, WeatherInfo weatherInfo = null) { CurrentDateInfos = null; var tempDateInfos = new List<DateInfo>(); if (dateTime.Date != DateTime.Now.Date) { dateTime = new DateTime(dateTime.Year, dateTime.Month, 1); } Lunar lastMouth= new Lunar(dateTime.AddMonths(-1)); Lunar currentMouth = new Lunar(dateTime); Lunar nextMouth = new Lunar(dateTime.AddMonths(1)); DateTime firstDayOfMouth = dateTime.AddDays(-dateTime.Day + 1); DateTime lastDayOfLastMouth = dateTime.AddDays(-dateTime.Day); int startDay = (int)firstDayOfMouth.DayOfWeek; int daysOfMounth = (firstDayOfMouth.AddMonths(1) - firstDayOfMouth).Days; if (startDay == 0) startDay = 7; DateTime startDate = firstDayOfMouth.AddDays(1 - startDay); DateTime endDate = startDate.AddDays(41); for (int i = 0; i < 35; i++) { var day = startDate.AddDays(i); Lunar mouth = null; var ob = lastMouth.GetOBOfDay(day); if (ob != null) mouth = lastMouth; else { ob = currentMouth.GetOBOfDay(day); if (ob != null) mouth = currentMouth; else { ob = nextMouth.GetOBOfDay(day); if (ob != null) mouth = nextMouth; } } var dateInfo = new DateInfo() { DateTime = day, CurrentDate = dateTime, OB = ob, Lunar = mouth }; switch ((dateInfo.DateTime.Date - DateTime.Now.Date).Days) { case -1: dateInfo.Weather = weatherInfo?.YesterdayWeather; break; case 0: dateInfo.Weather = weatherInfo?.TodayWeather; break; case 1: dateInfo.Weather = weatherInfo?.TomorrowWeather; break; case 2: dateInfo.Weather = weatherInfo?.ThirdDayWeather; break; case 3: dateInfo.Weather = weatherInfo?.FourthDayWeather; break; case 4: dateInfo.Weather = weatherInfo?.FifthDayWeather; break; case 5: dateInfo.Weather = weatherInfo?.SixthDayWeather; break; } tempDateInfos.Add(dateInfo); } if (startDate.AddDays(35).Month == dateTime.Month) { MouthMargin = ExtendMargin; for (int i = 0; i < 7; i++) { var day = firstDayOfMouth.AddDays(i + 36 - startDay); Lunar mouth = null; var ob = lastMouth.GetOBOfDay(day); if (ob != null) mouth = lastMouth; else { ob = currentMouth.GetOBOfDay(day); if (ob != null) mouth = currentMouth; else { ob = nextMouth.GetOBOfDay(day); if (ob != null) mouth = nextMouth; } } var dateInfo = new DateInfo() { DateTime = day, CurrentDate = dateTime, OB = ob, Lunar = mouth }; switch ((dateInfo.DateTime.Date - DateTime.Now.Date).Days) { case -1: dateInfo.Weather = weatherInfo?.YesterdayWeather; break; case 0: dateInfo.Weather = weatherInfo?.TodayWeather; break; case 1: dateInfo.Weather = weatherInfo?.TomorrowWeather; break; case 2: dateInfo.Weather = weatherInfo?.ThirdDayWeather; break; case 3: dateInfo.Weather = weatherInfo?.FourthDayWeather; break; case 4: dateInfo.Weather = weatherInfo?.FifthDayWeather; break; case 5: dateInfo.Weather = weatherInfo?.SixthDayWeather; break; } tempDateInfos.Add(dateInfo); CalendarRows = 6; } IsExtendedMonth = true; } else { MouthMargin = NormalMargin; CalendarRows = 5; IsExtendedMonth = false; } CurrentDateInfos = tempDateInfos; }