/// <summary> /// 根据公历,返回对应农历日期 /// </summary> /// <param name="date">公历日期</param> /// <returns></returns> public static ChinaDate ConvertToLunisolar(DateTime date) { ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar(); if (date > calendar.MaxSupportedDateTime || date < calendar.MinSupportedDateTime) { //日期范围:1901 年 2 月 19 日 - 2101 年 1 月 28 日 throw new Exception(string.Format("日期超出范围!必须在{0}到{1}之间!", calendar.MinSupportedDateTime.ToString("yyyy-MM-dd"), calendar.MaxSupportedDateTime.ToString("yyyy-MM-dd"))); } int iYear = calendar.GetYear(date); int iMonth = calendar.GetMonth(date); int leapMonth = calendar.GetLeapMonth(iYear); //判断是否闰月 var isLeapMonth = iMonth == leapMonth; if (leapMonth != 0 && iMonth >= leapMonth) { iMonth--; } int iDay = calendar.GetDayOfMonth(date); var chinaDate = new ChinaDate(); chinaDate.Year = iYear; chinaDate.Month = iMonth; chinaDate.Day = iDay; return(chinaDate); }
protected void rdlDate_SelectedIndexChanged(object sender, EventArgs e) { string beginTime = "", endTime = ""; switch (rdlDate.SelectedValue) { case "thisDay": beginTime = string.Format("{0:yyyy-MM-dd} 00:00:00", DateTime.Today); endTime = string.Format("{0:yyyy-MM-dd} 23:59:59", DateTime.Today); break; case "thisWeek": DateTime dt = ChinaDate.GetMondayDateByDate(DateTime.Today); beginTime = string.Format("{0:yyyy-MM-dd} 00:00:00", dt); endTime = string.Format("{0:yyyy-MM-dd} 23:59:59", dt.AddDays(6)); break; case "thisMonth": beginTime = string.Format("{0:yyyy-MM}-01 00:00:00", DateTime.Today); endTime = string.Format("{0:yyyy-MM}-" + ChinaDate.GetDaysByMonth(DateTime.Today.Year, DateTime.Today.Month) + " 23:59:59", DateTime.Today); break; } txtBeginTime.Text = beginTime; txtEndTime.Text = endTime; }
protected void Page_Load(object sender, EventArgs e) { string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; this.lblDateTime.Text = DateTime.Now.ToString("yyyy年MM月dd日 ") + Day[Convert.ToInt16(DateTime.Now.DayOfWeek)]; this.lblDayInfo.Text = ChinaDate.GetMonth(DateTime.Now) + ChinaDate.GetDay(DateTime.Now) + " " + ChinaDate.GetSolarTerm(DateTime.Now) + " " + ChinaDate.GetHoliday(DateTime.Now) + " " + ChinaDate.GetChinaHoliday(DateTime.Now); var customer = HozestERPContext.Current.User; var customerInfo = HozestERPContext.Current.User.SCustomerInfo; if (customerInfo != null) { this.lblUserName.Text = customerInfo.FullName; if (customerInfo.SDepartment != null) { this.lblUserName.Text += "【" + customerInfo.SDepartment.DepName + "】"; } } this.BindColumn(); //int year = 2000; //for (int i = 0; i <= 50; i++) //{ // cbYear.Items.Add(new ExtNet.ListItem((year + i).ToString() + "年", (year + i).ToString())); //} //for (int i = 1; i <= 12; i++) //{ // cbMonth.Items.Add(new ExtNet.ListItem(i.ToString().PadLeft('0',2) + "月", i.ToString().PadLeft('0',2))); //} }
protected void clShowTime_DayRender(object sender, DayRenderEventArgs e) { User user = (User)Session["Login"]; //自定义显示内容 CalendarDay calDay = e.Day; //获取表示呈现在空间中的单元格 TableCell tc = e.Cell; CNDate dt = ChinaDate.getChinaDate(calDay.Date);//农历转换对象 if (calDay.IsOtherMonth) { tc.Controls.Clear(); } else { try { HyperLink ahyperLink = new HyperLink(); ahyperLink.ImageUrl = "~/Images/add_Schedule.gif"; ahyperLink.ToolTip = "新增个人日程"; ahyperLink.NavigateUrl = "SaveMySchedule.aspx?today=" + calDay.Date.ToShortDateString(); tc.Controls.Add(new LiteralControl(" " + " " + " ")); tc.Controls.Add(ahyperLink); tc.Controls.Add(new LiteralControl("<br>" + dt.cnStrMonth + "月" + dt.cnStrDay)); //添加农历日期 tc.Controls.Add(new LiteralControl("<br>" + dt.cnSolarTerm)); //添加农历节气 tc.Controls.Add(new LiteralControl(dt.cnFtvl)); //添加节日 e.Cell.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#FFCCFF';cursor='hand';"; e.Cell.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#ffffff';"; IList <Schedule> schedules = ScheduleManager.SearchSchedule(calDay.Date.ToShortDateString(), -1, user.UserName, false); if (schedules != null) { string str = null; foreach (Schedule schedule in schedules) { HtmlAnchor ha = new HtmlAnchor(); ha.HRef = "SaveMySchedule.aspx?userId=" + user.UserId + "&today=" + calDay.Date.ToShortDateString(); try { str = schedule.Title.Substring(0, 3); } catch (Exception ex) { str = schedule.Title; } ha.InnerText = "@ " + schedule.BeginTime.Hour + ":" + schedule.BeginTime.Minute + str + "..."; //tc.Controls.Add(new LiteralControl(" "+" "+" ")); //tc.Controls.Add(new LiteralControl("<br>")); tc.Controls.Add(ha); } } } catch (Exception ex) { e.Cell.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#fff7ce';cursor='hand';"; e.Cell.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#ffffff';"; } } }
public void UT_GetChinaDate_V1() { try { CNDate result = ChinaDate.GetChinaDate(DateTime.Now); Assert.IsTrue(result == null ? false : true); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void UT_GetMondayDateByDate_V1() { try { DateTime result = ChinaDate.GetMondayDateByDate(DateTime.Now); Assert.AreEqual("2017-05-29", result.ToString("yyyy-MM-dd")); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public void UT_GetDaysByMonth_V1() { try { int result = ChinaDate.GetDaysByMonth(2017, 5); Assert.AreEqual(31, result); } catch (Exception ex) { Assert.Fail(ex.Message); } }
public MyDates(DateTime datetime) { dt = datetime; days = new List <Day>(); year = dt.Year; month = dt.Month; day = dt.Day; dttemp = new DateTime(year, month, 1); weeknum = dttemp.DayOfWeek - DayOfWeek.Sunday; dt = dttemp.AddDays(0 - weeknum); try { Days.Clear(); for (int i = 1; i <= 42; i++) { mydate1 = new MyDate(); ChinaDate.GetChinaDate(dt, ref mydate1); Day oneday = new Day(); oneday.year = dt.Year; oneday.month = dt.Month; oneday.day = dt.Day; oneday.mydate = mydate1; if (mydate1.Day.Equals("初一")) { oneday.lunarday = mydate1.Month; } else { oneday.lunarday = mydate1.Day; } if (!oneday.mydate.ChinaHoliday.Equals(string.Empty) && !oneday.mydate.ChinaHoliday.Equals("请返回重新查询")) { oneday.showday = (oneday.day > 9 ? " " + oneday.day.ToString() : " " + oneday.day.ToString()) + "\n" + oneday.mydate.ChinaHoliday; } else if (!oneday.mydate.SolorTerm.Equals(string.Empty) && !oneday.mydate.SolorTerm.Equals("到")) { oneday.showday = (oneday.day > 9 ? " " + oneday.day.ToString() : " " + oneday.day.ToString()) + "\n" + oneday.mydate.SolorTerm; } else { oneday.showday = (oneday.day > 9 ? " " + oneday.day.ToString() : " " + oneday.day.ToString()) + (oneday.mydate.Day.Equals("") ? string.Empty : "\n" + oneday.lunarday); } oneday.dayofweek = dt.DayOfWeek.ToString(); Days.Add(oneday); dt = dt.AddDays(1); } } catch (Exception) { } }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { var now = DateTime.Now; #region 拼接农历日期 var str = ChinaDate.GetChinaDate(now); var animal = str[1]; var gv = str.Substring(3, 2); var date = str.Split()[1]; var f = $"{gv} {animal}年 {date}"; #endregion //Debug.WriteLine($"INFO {f}"); DateTimeInfo.LunarDateText = f; DateTimeInfo.TimeText = now.ToString("HH:mm:ss", culture); DateTimeInfo.DayOfWeekText = now.ToString("dddd", culture); DateTimeInfo.DateText = now.ToString("yyyyMMMMdd", culture) + "日"; }
internal GameAPI MemberWork() { if (Member == null) { return(this); } Logger.Instance.AddLog(LogType.Debug, Member.Checked.Date + " " + DateTime.Now.Date); if (Member.Checked.Date != DateTime.Now.Date) { StringBuilder sb = new StringBuilder(); sb.AppendLine("已" + Member.Work.ToString() + ", 获取了" + SharedData.Instance.工资[Member.Work] + "金币!"); if (Member.Checked.AddDays(1).Date == DateTime.Now.Date) { Member.Combo++; if (Member.Combo > 0) { sb.Append("C"); } if (Member.Combo > 1) { sb.Append("O"); } if (Member.Combo > 2) { sb.Append("M"); } if (Member.Combo > 3) { sb.Append("B"); } if (Member.Combo > 4) { sb.Append("O"); } if (Member.Combo == 5) { Member.Combo = 0; sb.AppendLine("\n恭喜连续工作获得勤工奖!额外获得了500金币!"); Member.Cash += 500; } } else { Member.Combo = 0; } Session.SendGroupMessage(Member.Member.GroupId, new AtMessage(Member.Member.QQId), new PlainMessage(sb.ToString())); Member.Exp += SharedData.Instance.工资[Member.Work]; Member.Cash += SharedData.Instance.工资[Member.Work]; Member.Checked = DateTime.Now; if (Member.Exp > SharedData.Instance.需要经验值[Member.Work] && Member.Work != Enum.GetValues(typeof(Work)).Cast <Work>().Last()) { Member.Work = Member.Work.Next(); Session.SendGroupMessage(Member.Member.GroupId, new AtMessage(Member.Member.QQId), new PlainMessage("已升级啦!接下来的工作为" + Member.Work.ToString() + ", 工资为" + SharedData.Instance.工资[Member.Work] + "金币!")); } var holiday1 = ChinaDate.GetHoliday(DateTime.Now); var holiday2 = ChinaDate.GetChinaHoliday(DateTime.Now); if (holiday1 != ChinaDate.GHoliday.无) { Member.Cash += 2000; Session.SendGroupMessage(Member.Member.GroupId, new AtMessage(Member.Member.QQId), new PlainMessage("今天是" + holiday1.ToString() + ",大本营特意送了2000金币!")); } if (holiday2 != ChinaDate.NHoliday.无) { Member.Cash += 2000; Session.SendGroupMessage(Member.Member.GroupId, new AtMessage(Member.Member.QQId), new PlainMessage("今天是" + holiday2.ToString() + ",大本营特意送了2000金币!")); } } else { Session.SendGroupMessage(Member.Member.GroupId, new PlainMessage("虽然"), new AtMessage(Member.Member.QQId), new PlainMessage("很想自主996加班,然而被雇主给轰了出去并且被告上大本营法庭处置")); Session.Mute(Member.Member.GroupId, Member.Member.QQId, new TimeSpan(0, 1, 0)); } return(this); }
void update_days(bool flag) { GameObject days_obj = transform.FindChild("days").gameObject; GameObject select = null; int maxDays = DateTime.DaysInMonth(_year, _month); DateTime fisrt = new DateTime(_year, _month, 1); DayOfWeek week = fisrt.DayOfWeek; int start = MyUtilTools.GetWeekDays(week);//这个月的第一天 int preMonth = _month - 1; int preYear = _year; if (preMonth == 0) { preMonth = 12; preYear--; } int stand = start == 0 ? 1 : 0; int temp = start == 0 ? 7 : start; int preLastDay = DateTime.DaysInMonth(preYear, preMonth); int dayIndex = preLastDay - temp + 1; int dayCount = 0; int nextMonth = _month; int nextYear = _year; bool nextMonthStart = false; bool thisMonthStart = false; for (int i = 0; i < 6; i++) { GameObject row_obj = days_obj.transform.FindChild("row" + i).gameObject; if (i <= stand) { for (int j = 0; j < 7; j++) { GameObject day = row_obj.transform.FindChild("col" + j).gameObject; if (flag) { UIButton button = day.GetComponent <UIButton>(); EventDelegate event_select = new EventDelegate(this, "doSelect"); event_select.parameters[0] = new EventDelegate.Parameter(); event_select.parameters[0].obj = day; button.onClick.Add(event_select); } if (dayIndex < preLastDay - 1 && !thisMonthStart) { day.SetActive(false); } else { if (!thisMonthStart && dayIndex > preLastDay) { thisMonthStart = true; dayIndex = 1; preMonth++; if (preMonth > 12) { preMonth = 1; preYear++; } } day.SetActive(true); UILabel label = day.transform.FindChild("gl").GetComponent <UILabel>(); label.text = dayIndex + ""; label = day.transform.FindChild("nl").GetComponent <UILabel>(); if (dayIndex == DateTime.Now.Day && preMonth == DateTime.Now.Month && preYear == DateTime.Now.Year) { label.text = "今天"; } else { DateTime dateTime = DateTime.Parse(preYear + "-" + MyUtilTools.numToString(preMonth) + "-" + MyUtilTools.numToString(dayIndex) + " 00:00:00"); CNDate cnDate = ChinaDate.getChinaDate(dateTime); if (!cnDate.cnFtvl.Equals("")) { label.text = cnDate.cnFtvl; } else if (!cnDate.cnFtvs.Equals("")) { label.text = cnDate.cnFtvs; } else if (!cnDate.cnSolarTerm.Equals("")) { label.text = cnDate.cnSolarTerm; } else { label.text = cnDate.cnStrDay; } } if (selectIndex == -1 && _day == dayIndex && nextMonth == _month && nextYear == _year) { selectIndex = dayCount; } } CalendarData cd = day.GetComponent <CalendarData>(); cd.Value = MyUtilTools.numToString(preYear) + "-" + MyUtilTools.numToString(preMonth) + "-" + MyUtilTools.numToString(dayIndex); cd.Index = dayCount; dayIndex++; dayCount++; } } else { for (int j = 0; j < 7; j++) { GameObject day = row_obj.transform.FindChild("col" + j).gameObject; if (flag) { UIButton button = day.GetComponent <UIButton>(); EventDelegate event_select = new EventDelegate(this, "doSelect"); event_select.parameters[0] = new EventDelegate.Parameter(); event_select.parameters[0].obj = day; button.onClick.Add(event_select); } if (nextMonthStart) { day.SetActive(false); } else { day.SetActive(true); UILabel label = day.transform.FindChild("gl").GetComponent <UILabel>(); label.text = dayIndex + ""; label = day.transform.FindChild("nl").GetComponent <UILabel>(); if (dayIndex == DateTime.Now.Day && nextMonth == DateTime.Now.Month && nextYear == DateTime.Now.Year) { label.text = "今天"; } else { DateTime dateTime = DateTime.Parse(nextYear + "-" + MyUtilTools.numToString(nextMonth) + "-" + MyUtilTools.numToString(dayIndex) + " 00:00:00"); CNDate cnDate = ChinaDate.getChinaDate(dateTime); if (!cnDate.cnFtvl.Equals("")) { label.text = cnDate.cnFtvl; } else if (!cnDate.cnFtvs.Equals("")) { label.text = cnDate.cnFtvs; } else if (!cnDate.cnSolarTerm.Equals("")) { label.text = cnDate.cnSolarTerm; } else { label.text = cnDate.cnStrDay; } } if (selectIndex == -1 && _day == dayIndex && nextMonth == _month && nextYear == _year) { selectIndex = dayCount; } CalendarData cd = day.GetComponent <CalendarData>(); cd.Value = MyUtilTools.numToString(nextYear) + "-" + MyUtilTools.numToString(nextMonth) + "-" + MyUtilTools.numToString(dayIndex); cd.Index = dayCount; dayIndex++; if (dayIndex > maxDays) {//下一个月的天数 nextMonthStart = true; dayIndex = 1; nextMonth++; if (nextMonth > 12) { nextMonth = 1; nextYear++; } } } dayCount++; } } } int row = selectIndex / 7; int col = selectIndex % 7; select = days_obj.transform.FindChild("row" + row).FindChild("col" + col).gameObject; if (flag) { selectIndex = -1; } doSelect(select); }
void _update() { if (list_container == null) { list_container = needshow[0].transform.FindChild("list").FindChild("body").FindChild("container"); texture1 = Resources.Load <Texture>("pic/time-event1"); texture2 = Resources.Load <Texture>("pic/time-event2"); texture3 = Resources.Load <Texture>("pic/time-event3"); texture4 = Resources.Load <Texture>("pic/time-event4"); TimeLineRefresh refresh = needshow[0].AddComponent <TimeLineRefresh>(); refresh.timeEvent = this; } if (Calendar.selectTexture == null) { Calendar.selectTexture = Resources.Load <Texture>("pic/time-sb"); } list_container.parent.GetComponent <UIPanel>().clipOffset = Vector2.zero; list_container.parent.localPosition = new Vector3(0, 0, 0); UILabel year_label = list_container.FindChild("up").GetComponent <UILabel>(); year_label.text = MyUtilTools.numToString(_year) + "年" + MyUtilTools.numToString(_month) + "月"; Transform days_trans = list_container.FindChild("days"); int maxDays = DateTime.DaysInMonth(_year, _month); DateTime fisrt = new DateTime(_year, _month, 1); DayOfWeek week = fisrt.DayOfWeek; int start = MyUtilTools.GetWeekDays(week);//这个月的第一天 int preMonth = _month - 1; int preYear = _year; if (preMonth == 0) { preMonth = 12; preYear--; } int stand = start == 0 ? 1 : 0; int temp = start == 0 ? 7 : start; int preLastDay = DateTime.DaysInMonth(preYear, preMonth); int dayIndex = preLastDay - temp + 1; int dayCount = 0; int nextMonth = _month; int nextYear = _year; bool nextMonthStart = false; bool thisMonthStart = false; for (int i = 0; i < 6; i++) { GameObject row_obj = days_trans.FindChild("row" + i).gameObject; if (i <= stand) { for (int j = 0; j < 7; j++) { GameObject day = row_obj.transform.FindChild("col" + j).gameObject; UIButton button = day.GetComponent <UIButton>(); if (button.onClick.Count == 0) { EventDelegate event_select = new EventDelegate(this, "doSelect"); event_select.parameters[0] = new EventDelegate.Parameter(); event_select.parameters[0].obj = day; button.onClick.Add(event_select); } if (dayIndex < preLastDay - 1 && !thisMonthStart) { day.SetActive(false); } else { if (!thisMonthStart && dayIndex > preLastDay) { thisMonthStart = true; dayIndex = 1; preMonth++; if (preMonth > 12) { preMonth = 1; preYear++; } } day.SetActive(true); UILabel label = day.transform.FindChild("gl").GetComponent <UILabel>(); label.text = dayIndex + ""; label = day.transform.FindChild("nl").GetComponent <UILabel>(); if (dayIndex == DateTime.Now.Day && preMonth == DateTime.Now.Month && preYear == DateTime.Now.Year) { label.text = "今天"; } else { DateTime dateTime = DateTime.Parse(preYear + "-" + MyUtilTools.numToString(preMonth) + "-" + MyUtilTools.numToString(dayIndex) + " 00:00:00"); CNDate cnDate = ChinaDate.getChinaDate(dateTime); if (!cnDate.cnFtvl.Equals("")) { label.text = cnDate.cnFtvl; } else if (!cnDate.cnFtvs.Equals("")) { label.text = cnDate.cnFtvs; } else if (!cnDate.cnSolarTerm.Equals("")) { label.text = cnDate.cnSolarTerm; } else { label.text = cnDate.cnStrDay; } } if (selectIndex == -1 && _day == dayIndex && nextMonth == _month && nextYear == _year) { selectIndex = dayCount; } } _update_flags(day, preYear, preMonth, dayIndex); CalendarData cd = day.GetComponent <CalendarData>(); cd.Value = MyUtilTools.numToString(preYear) + "-" + MyUtilTools.numToString(preMonth) + "-" + MyUtilTools.numToString(dayIndex); cd.Index = dayCount; dayIndex++; dayCount++; } } else { for (int j = 0; j < 7; j++) { GameObject day = row_obj.transform.FindChild("col" + j).gameObject; UIButton button = day.GetComponent <UIButton>(); if (button.onClick.Count == 0) { EventDelegate event_select = new EventDelegate(this, "doSelect"); event_select.parameters[0] = new EventDelegate.Parameter(); event_select.parameters[0].obj = day; button.onClick.Add(event_select); } if (nextMonthStart) { day.SetActive(false); } else { day.SetActive(true); UILabel label = day.transform.FindChild("gl").GetComponent <UILabel>(); label.text = dayIndex + ""; label = day.transform.FindChild("nl").GetComponent <UILabel>(); if (dayIndex == DateTime.Now.Day && nextMonth == DateTime.Now.Month && nextYear == DateTime.Now.Year) { label.text = "今天"; } else { DateTime dateTime = DateTime.Parse(nextYear + "-" + MyUtilTools.numToString(nextMonth) + "-" + MyUtilTools.numToString(dayIndex) + " 00:00:00"); CNDate cnDate = ChinaDate.getChinaDate(dateTime); if (!cnDate.cnFtvl.Equals("")) { label.text = cnDate.cnFtvl; } else if (!cnDate.cnFtvs.Equals("")) { label.text = cnDate.cnFtvs; } else if (!cnDate.cnSolarTerm.Equals("")) { label.text = cnDate.cnSolarTerm; } else { label.text = cnDate.cnStrDay; } } if (selectIndex == -1 && _day == dayIndex && nextMonth == _month && nextYear == _year) { selectIndex = dayCount; } _update_flags(day, nextYear, nextMonth, dayIndex); CalendarData cd = day.GetComponent <CalendarData>(); cd.Value = MyUtilTools.numToString(nextYear) + "-" + MyUtilTools.numToString(nextMonth) + "-" + MyUtilTools.numToString(dayIndex); cd.Index = dayCount; dayIndex++; if (dayIndex > maxDays) {//下一个月的天数 nextMonthStart = true; dayIndex = 1; nextMonth++; if (nextMonth > 12) { nextMonth = 1; nextYear++; } } } dayCount++; } } } int row = selectIndex / 7; int col = selectIndex % 7; GameObject select = days_trans.FindChild("row" + row).FindChild("col" + col).gameObject; doSelect(select); }