From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001 From: xm <1271024303@qq.com> Date: 星期一, 14 十二月 2020 09:59:01 +0800 Subject: [PATCH] 请合并代码,完成晾衣架最终功能。 --- ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/DateSelectControl.cs | 196 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 196 insertions(+), 0 deletions(-) diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/DateSelectControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/DateSelectControl.cs new file mode 100755 index 0000000..97a1833 --- /dev/null +++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/NormalControls/DateSelectControl.cs @@ -0,0 +1,196 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace Shared.Phone.UserCenter +{ + /// <summary> + /// 鏃ユ湡閫夋嫨鎺т欢(璁剧疆鍜岃幏鍙栧��,璇蜂娇鐢� dateValue) + /// </summary> + public class DateSelectControl : ButtonBase + { + #region 鈻� 鍙橀噺澹版槑___________________________ + + /// <summary> + /// 鏃ユ湡閫夋嫨鏃堕棿(8浣�,濡傦細20101231) + /// </summary> + public Action<string> DateSelectEvent = null; + /// <summary> + /// 鏃ユ湡鏍煎紡 + /// </summary> + private string dateFomat = string.Empty; + /// <summary> + /// 鏍囬淇℃伅 + /// </summary> + private string titleText = string.Empty; + + private string m_dateValue = "00000000"; + /// <summary> + /// 璁剧疆鎴栬�呰幏鍙栨棩鏈熷��(8浣�,濡傦細20101231) + /// </summary> + public string dateValue + { + get { return m_dateValue; } + set + { + this.m_dateValue = value; + + int year = Convert.ToInt32(value.Substring(0, 4)); + int month = Convert.ToInt32(value.Substring(4, 2)); + int day = Convert.ToInt32(value.Substring(6, 2)); + + var myTime = new DateTime(year, month, day); + this.Text = myTime.ToString(this.dateFomat); + } + } + + /// <summary> + /// 骞� + /// </summary> + public int Year + { + get { return Convert.ToInt32(m_dateValue.Substring(0, 4)); } + } + + /// <summary> + /// 鏈� + /// </summary> + public int Month + { + get { return Convert.ToInt32(m_dateValue.Substring(4, 2)); } + } + + /// <summary> + /// 鏃� + /// </summary> + public int Day + { + get { return Convert.ToInt32(m_dateValue.Substring(6, 2)); } + } + + + #endregion + + #region 鈻� 鍒濆鍖朹____________________________ + + /// <summary> + /// 鏃ユ湡閫夋嫨鎺т欢(璁剧疆鍜岃幏鍙栧��,璇蜂娇鐢� dateValue) + /// </summary> + /// <param name="i_titleText">鏍囬鏂囨湰</param> + /// <param name="i_dateFomat">鏃ユ湡鏍煎紡</param> + public DateSelectControl(string i_titleText = "", string i_dateFomat = "yyyy/MM/dd") + { + this.dateFomat = i_dateFomat; + this.titleText = i_titleText; + + //鐢ㄦ潵璁$畻闀垮害鐨� + string dateTextTemp = DateTime.Now.ToString(i_dateFomat); + this.TextSize = 12; + this.Text = dateTextTemp; + + this.InitSize(this.GetRealWidthByText(), Application.GetRealHeight(50), false); + this.Text = string.Empty; + + //寮硅捣鏃ユ湡閫夋嫨 + this.ButtonClickEvent += (sender, e) => + { + //鏃ユ湡閫夋嫨 + this.DoSelectDate(); + }; + } + + #endregion + + #region 鈻� 鏃ユ湡閫夋嫨___________________________ + + /// <summary> + /// 鏃ユ湡閫夋嫨 + /// </summary> + private void DoSelectDate() + { + var listYear = new List<string>(); + int nowYear = Convert.ToInt32(DateTime.Now.ToString("yyyy")); + for (int i = 0; i < 6; i++) + { + //浜斿勾鏃堕棿 + listYear.Insert(0, (nowYear - i).ToString()); + } + //鏈� + var listMonth = new List<string>(); + var monthText = Language.StringByID(R.MyInternationalizationString.Month); + for (int i = 1; i <= 12; i++) + { + listMonth.Add(i.ToString().PadLeft(2, '0') + monthText); + } + //鏃� + var listDay = new List<string>(); + var dayText = Language.StringByID(R.MyInternationalizationString.Day); + for (int i = 1; i <= 31; i++) + { + listDay.Add(i.ToString().PadLeft(2, '0') + dayText); + } + PickerView.ShowNormal(listYear, listMonth, listDay, (iyear, imonth, iday) => + { + //鑾峰彇姝g‘鐨勬棩鏈熸枃鏈� + string datetTemp = this.GetRightDateText(Convert.ToInt32(listYear[iyear]), Convert.ToInt32(listMonth[imonth].Substring(0, 2)), Convert.ToInt32(listDay[iday].Substring(0, 2))); + bool change = datetTemp != this.dateValue; + //鏂囨湰鏄剧ず + this.dateValue = datetTemp; + if (change == true) + { + //鍊兼敼鍙樻墠浼氳皟鐢ㄥ洖璋冨嚱鏁� + DateSelectEvent?.Invoke(datetTemp); + } + }, + listYear.IndexOf(m_dateValue.Substring(0, 4)), + listMonth.IndexOf(m_dateValue.Substring(4, 2) + monthText), + listDay.IndexOf(m_dateValue.Substring(6, 2) + dayText), + this.titleText, + Language.StringByID(R.MyInternationalizationString.uFinish), + Language.StringByID(R.MyInternationalizationString.uCancel)); + } + + #endregion + + #region 鈻� 涓�鑸柟娉昣__________________________ + + /// <summary> + /// 鑾峰彇姝g‘鐨勬棩鏈熸枃鏈� + /// </summary> + /// <param name="year"></param> + /// <param name="month"></param> + /// <param name="day"></param> + /// <returns></returns> + private string GetRightDateText(int year, int month, int day) + { + if (month == 4 || month == 6 || month == 9 || month == 11) + { + if (day > 30) + { + day = 30; + } + } + else if (month == 2) + { + //闂板勾 + if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) + { + if (day > 29) + { + day = 29; + } + } + else + { + if (day > 28) + { + day = 28; + } + } + } + return year.ToString() + month.ToString().PadLeft(2, '0') + day.ToString().PadLeft(2, '0'); + } + + #endregion + } +} -- Gitblit v1.8.0