From 9a4b76398009cf76c508d61f7e48fb6f5cb7ac2d Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期二, 21 七月 2020 09:46:53 +0800
Subject: [PATCH] 请合并最新多功能面板代码
---
ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs | 677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 677 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs b/ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs
new file mode 100755
index 0000000..9debcc0
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/Device/Logic/EveryyearPage.cs
@@ -0,0 +1,677 @@
+锘縰sing System;
+using System.Collections.Generic;
+using Shared;
+using Shared.Phone;
+using Shared.R;
+using Shared.Common;
+namespace Shared.Phone.Device.Logic
+{
+ public class EveryyearPage : FrameLayout
+ {
+
+
+ public void Show()
+ {
+
+ this.BackgroundColor = ZigbeeColor.Current.LogicTopViewBackgroundColor;
+ var topFrameLayout = new FrameLayout
+ {
+ Height = Application.GetRealHeight(140),
+ Y = Application.GetRealHeight(80),
+ // BackgroundColor = 0xFF1F1F1F,
+ };
+ AddChidren(topFrameLayout);
+
+ var titleName = new Button
+ {
+ TextID = MyInternationalizationString.cycle,
+ TextSize = 16,
+ TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+ IsBold = true,
+ };
+ topFrameLayout.AddChidren(titleName);
+
+ var hdl = new Button
+ {
+ Width = Application.GetRealWidth(154),
+ Height = Application.GetRealHeight(90),
+ X = Application.GetRealWidth(1080 - 160),
+ Gravity = Gravity.CenterVertical,
+ UnSelectedImagePath = "Logo/Logo.png",
+ };
+ //topFrameLayout.AddChidren(hdl);
+
+ var back = new Button
+ {
+ Width = Application.GetRealWidth(110),
+ Height = Application.GetRealHeight(110),
+ X = Application.GetRealWidth(20),
+ Gravity = Gravity.CenterVertical,
+ UnSelectedImagePath = "ZigeeLogic/Back.png",
+ };
+ topFrameLayout.AddChidren(back);
+ back.MouseDownEventHandler += (sender, e) =>
+ {
+ RemoveFromParent();
+ };
+
+ var titlerl = new RowLayout
+ {
+ Height = Application.GetRealHeight(180),
+ //BackgroundColor = 0xff0f0f0f,
+ Y = Application.GetRealHeight(220),
+ };
+ AddChidren(titlerl);
+
+ titlerl.AddChidren(
+ new Button
+ {
+ X = Application.GetRealWidth(40),
+ //Text = "璇烽�夋嫨閲嶅鎵ц鍛ㄦ湡",
+ TextID = MyInternationalizationString.repeat,
+ TextSize = 17,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+ }
+ );
+
+ var middle = new VerticalScrolViewLayout();
+ middle.Y = titlerl.Bottom;
+ middle.Height = Application.GetRealHeight(Method.H - 220 - 180);
+ middle.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
+ this.AddChidren(middle);
+
+
+ var startdateRowLayout = new RowLayout
+ {
+ Height = Application.GetRealHeight(180),
+ };
+ middle.AddChidren(startdateRowLayout);
+
+ var startdatetext = new Button
+ {
+ X = Application.GetRealWidth(40),
+ TextAlignment = TextAlignment.CenterLeft,
+ Gravity = Gravity.CenterVertical,
+ //Text = "璧峰鏃ユ湡",
+ Width = Application.GetRealWidth(400),
+ TextID = MyInternationalizationString.startdate,
+ TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+ };
+ startdateRowLayout.AddChidren(startdatetext);
+
+ ///鏄剧ず璧峰鏃ユ湡鎺т欢
+ var btnStartdate = new Button
+ {
+ Width = Application.GetRealWidth(400),
+ Height = Application.GetRealHeight(180),
+ X = Application.GetRealWidth(440),
+ Gravity = Gravity.CenterVertical,
+ Tag = 0,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+
+ };
+ startdateRowLayout.AddChidren(btnStartdate);
+
+ var btnStartdateback = new Button
+ {
+ Width = Application.GetRealWidth(110),
+ Height = Application.GetRealHeight(110),
+ UnSelectedImagePath = "ZigeeLogic/next.png",
+ X = Application.GetRealWidth(1080 - 140),
+ Gravity = Gravity.CenterVertical,
+ };
+ startdateRowLayout.AddChidren(btnStartdateback);
+
+ var enddateRowLayout = new RowLayout
+ {
+ Height = Application.GetRealHeight(180),
+ };
+ middle.AddChidren(enddateRowLayout);
+
+ var enddtaetext = new Button
+ {
+ X = Application.GetRealWidth(40),
+ TextAlignment = TextAlignment.CenterLeft,
+ Gravity = Gravity.CenterVertical,
+ TextID = MyInternationalizationString.enddate,
+ Width = Application.GetRealWidth(400),
+ TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+ //Text = "缁撴潫鏃ユ湡",
+ };
+ enddateRowLayout.AddChidren(enddtaetext);
+
+ ///鏄剧ず缁撴潫鏃ユ湡鎺т欢
+ var btndateEnddate = new Button
+ {
+ Width = Application.GetRealWidth(400),
+ Height = Application.GetRealHeight(180),
+ X = Application.GetRealWidth(440),
+ Gravity = Gravity.CenterVertical,
+ Tag = 0,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextColor = ZigbeeColor.Current.LogicTextBlackColor,
+
+ };
+ enddateRowLayout.AddChidren(btndateEnddate);
+
+
+ var btnenddateback = new Button
+ {
+ Width = Application.GetRealWidth(110),
+ Height = Application.GetRealHeight(110),
+ UnSelectedImagePath = "ZigeeLogic/next.png",
+ X = Application.GetRealWidth(1080 - 140),
+ Gravity = Gravity.CenterVertical,
+ };
+ enddateRowLayout.AddChidren(btnenddateback);
+
+
+ ///璧峰鏃ユ湡鐐瑰嚮浜嬩欢
+ EventHandler<MouseEventArgs> startdateclick = (sender33, e33) =>
+ {
+ var list = new List<KeyValuePair<string, string[]>> { };
+ for (int month = 1; month <= 12; month++)
+ {
+ int days = DateTime.DaysInMonth(DateTime.Now.Year, month);
+ var listValues = new List<string> { };
+ for (int day = 1; day <= days; day++)
+ {
+ listValues.Add(day.ToString() + " " + Language.StringByID(MyInternationalizationString.day));
+ }
+ list.Add(new KeyValuePair<string, string[]>(month.ToString() + " " + Language.StringByID(MyInternationalizationString.month), listValues.ToArray()));
+ }
+ /*
+ PickerView.Show(list, (obj) =>
+ {
+
+ var month = obj.Split(',')[0].Split(' ')[0];
+ var day = obj.Split(',')[1].Split(' ')[0];
+
+ if (month.Length < 2)
+ {
+ month = "0" + month;
+ }
+ if (day.Length < 2)
+ {
+ day = "0" + day;
+ }
+ var leng = month + day;
+
+ if (btndateEnddate.Tag.ToString() != "0" && int.Parse(btndateEnddate.Tag.ToString()) < int.Parse(leng))
+ {
+ var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
+ Language.StringByID(MyInternationalizationString.monthday),
+ Language.StringByID(MyInternationalizationString.OK));
+ alert.Show();
+ }
+ else
+ {
+ btnStartdate.Text = month + "/" + day;
+ btnStartdate.Tag = leng;
+
+ if (string.IsNullOrEmpty(btndateEnddate.Text))
+ {
+ btndateEnddate.Text = month + "/" + day;
+ btndateEnddate.Tag = leng;
+ }
+ time(btnStartdate, btndateEnddate);
+ }
+
+ }, Language.StringByID(MyInternationalizationString.complete), "");
+ */
+ };
+ startdateRowLayout.MouseUpEventHandler += startdateclick;
+ btnStartdate.MouseUpEventHandler += startdateclick;
+ startdatetext.MouseUpEventHandler += startdateclick;
+ btnStartdateback.MouseUpEventHandler += startdateclick;
+
+
+
+ ///缁撴潫鏃ユ湡鐐瑰嚮浜嬩欢
+ EventHandler<MouseEventArgs> enddateclick = (sender1, e1) =>
+ {
+
+ var list1 = new List<KeyValuePair<string, string[]>> { };
+ for (int month = 1; month <= 12; month++)
+ {
+ int days = DateTime.DaysInMonth(DateTime.Now.Year, month);
+ var listValues = new List<string> { };
+ for (int day = 1; day <= days; day++)
+ {
+ listValues.Add(day.ToString() + " " + Language.StringByID(MyInternationalizationString.day));
+ }
+ list1.Add(new KeyValuePair<string, string[]>(month.ToString() + " " + Language.StringByID(MyInternationalizationString.month), listValues.ToArray()));
+ }
+ /*
+ PickerView.Show(list1, (obj) =>
+ {
+ var month = obj.Split(',')[0].Split(' ')[0];
+ var day = obj.Split(',')[1].Split(' ')[0];
+ if (month.Length < 2)
+ {
+ month = "0" + month;
+ }
+ if (day.Length < 2)
+ {
+ day = "0" + day;
+ }
+ var leng = month + day;
+
+ if (btnStartdate.Tag.ToString() != "0" && int.Parse(btnStartdate.Tag.ToString()) > int.Parse(leng))
+ {
+ var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt),
+ Language.StringByID(MyInternationalizationString.monthday),
+ Language.StringByID(MyInternationalizationString.OK));
+ alert.Show();
+ }
+ else
+ {
+ btndateEnddate.Text = month + "/" + day;
+ btndateEnddate.Tag = leng;
+
+ if (string.IsNullOrEmpty(btnStartdate.Text))
+ {
+ btnStartdate.Text = month + "/" + day;
+ btnStartdate.Tag = leng;
+ }
+
+ time(btnStartdate, btndateEnddate);
+ }
+
+ }, Language.StringByID(MyInternationalizationString.complete), "");
+
+ */
+ };
+ enddateRowLayout.MouseUpEventHandler += enddateclick;
+ enddtaetext.MouseUpEventHandler += enddateclick;
+ btndateEnddate.MouseUpEventHandler += enddateclick;
+ btnenddateback.MouseUpEventHandler += enddateclick;
+
+ if (Common.Logic.CurrentLogic.TimeAttribute.Repeat == 4)
+ {
+
+ Dictionary<int, int> dictionary = new Dictionary<int, int>();
+ ///鎵惧嚭鎵ц鐨勬湀浠藉拰澶╂暟
+ if (Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate.Count != 0)
+ {
+ for (int i = 0; i < Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate.Count; i++)
+ {
+ var dayvalue = Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate[i];
+ if (dayvalue != 0)
+ {
+ dictionary.Add(i + 1, dayvalue);
+ }
+ }
+ }
+ if (dictionary.Count != 0 && dictionary.Count == 1)
+ {
+ string len = "", leng = "";
+ int minvalue = 0, Maximum = 0;
+ foreach (var value in dictionary)
+ {
+ ///鍙栧嚭鏈堜唤
+ var month = value.Key;
+ ///鍙栧嚭鏃ユ暟
+ var day = value.Value;
+ ///杞崲鎴愪簩杩涘埗bit
+ var maxvalue = Convert.ToString(day, 2);
+ ///杞崲鎴�32浣峴tring锛�
+ var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
+ ///閲嶆柊鎺掑垪32浣峴tring椤哄簭锛�
+ for (int j = 31; j >= 0; j--)
+ {
+ len += str.Substring(j, 1);
+ }
+ ///鎵惧嚭寮�濮嬫棩
+ for (int j = 0; j < len.Length; j++)
+ {
+ var strvalue = len.Substring(j, 1);
+ if (strvalue == "1")
+ {
+ minvalue = j + 1;
+ break;
+ }
+ }
+ ///鎵惧嚭缁撴潫鏃�
+ for (int j = 0; j < len.Length; j++)
+ {
+ var strvalue = len.Substring(j, 1);
+ if (strvalue == "1")
+ {
+ Maximum = j + 1;
+
+ }
+ }
+
+ if (month.ToString().Length < 2)
+ {
+ leng = "0" + month.ToString();
+ }
+ else
+ {
+ leng = month.ToString();
+ }
+
+ btnStartdate.Text = leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
+ btndateEnddate.Text = leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() :Maximum.ToString());
+ btnStartdate.Tag = leng + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
+ btndateEnddate.Tag = leng + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+
+ }
+
+ }
+ else
+ {
+ int b = 0;
+ foreach (var value in dictionary)
+ {
+ string len = "", leng = "";
+ int minvalue = 0,Maximum=0;
+ ///鍙栧嚭鏈堜唤
+ var month = value.Key;
+ ///鍙栧嚭鏃ユ暟
+ var day = value.Value;
+ ///杞崲鎴愪簩杩涘埗bit
+ var maxvalue = Convert.ToString(day, 2);
+ ///杞崲鎴�32浣峴tring锛�
+ var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
+ ///閲嶆柊鎺掑垪32浣峴tring椤哄簭锛�
+ for (int j = 31; j >= 0; j--)
+ {
+ len += str.Substring(j, 1);
+ }
+
+
+ if (month.ToString().Length < 2)
+ {
+ leng = "0" + month.ToString();
+ }
+ else
+ {
+ leng = month.ToString();
+ }
+ ///绗竴涓猟ictionary鍏冪礌
+ if (b == 0)
+ {
+ ///鎵惧嚭寮�濮嬫棩
+ for (int j = 0; j < len.Length; j++)
+ {
+ var strvalue = len.Substring(j, 1);
+ if (strvalue == "1")
+ {
+ minvalue = j + 1;
+ break;
+ }
+ }
+ btnStartdate.Text = leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
+ btnStartdate.Tag = leng + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
+
+ }
+ ///绗簩涓猟ictionary鍏冪礌
+ if (b == dictionary.Count - 1)
+ {
+ ///鎵惧嚭缁撴潫鏃�
+ for (int j = 0; j < len.Length; j++)
+ {
+ var strvalue = len.Substring(j, 1);
+ if (strvalue == "1")
+ {
+ Maximum = j + 1;
+ }
+ }
+ btndateEnddate.Text = leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+ btndateEnddate.Tag = leng + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
+
+ }
+ b++;
+ }
+
+ }
+
+ }
+
+ }
+ /// <summary>
+ /// 鏃ユ湡澶勭悊鐨勬柟娉�
+ /// </summary>
+ void time(Button btnStartdate, Button btndateEnddate)
+ {
+
+ DateTime dtNow = DateTime.Now;
+ Common.Logic.CurrentLogic.TimeAttribute.Repeat = 4;
+ int a1 = int.Parse(btnStartdate.Tag.ToString());
+ int a2 = int.Parse(btndateEnddate.Tag.ToString());
+ int b1 = int.Parse(btnStartdate.Tag.ToString().Substring(0, 2));
+ int b2 = int.Parse(btndateEnddate.Tag.ToString().Substring(0, 2));
+ int c1 = int.Parse(btnStartdate.Tag.ToString().Substring(2, 2));
+ int c2 = int.Parse(btndateEnddate.Tag.ToString().Substring(2, 2));
+ int[] intlist = new int[12];
+ int oXvalue = 0, monthvalue = 0;
+ ///1锛屽厛鍒ゆ柇澶勭悊鐩稿悓鐨勬湀浠斤紱2锛屽啀澶勭悊涓嶇浉鍚岀殑鏈堜唤锛�
+ if (b1 == b2)
+ {
+ for (int i = 1; i < 13; i++)
+ {
+ if (b1 == b2 && i == b1)
+ {
+ switch (i)
+ {
+ case 1:
+ {
+ oXvalue = 1;
+ }
+ break;
+ case 2:
+ {
+ oXvalue = 2;
+ }
+ break;
+ case 3:
+ {
+ oXvalue = 4;
+ }
+ break;
+ case 4:
+ {
+ oXvalue = 8;
+ }
+ break;
+ case 5:
+ {
+ oXvalue = 16;
+ }
+ break;
+ case 6:
+ {
+ oXvalue = 32;
+ }
+ break;
+ case 7:
+ {
+ oXvalue = 64;
+ }
+ break;
+ case 8:
+ {
+ oXvalue = 96;
+ }
+ break;
+ case 9:
+ {
+ oXvalue = 128;
+ }
+ break;
+ case 10:
+ {
+ oXvalue = 256;
+ }
+ break;
+ case 11:
+ {
+ oXvalue = 512;
+ }
+ break;
+ case 12:
+ {
+ oXvalue = 1024;
+ }
+ break;
+ }
+
+ string s = "";
+
+ for (int j = 32; j > 0; j--)
+ {
+ if (j >= c1 && j <= c2)
+ {
+ s += "1";
+ }
+ else
+ {
+ s += "0";
+ }
+
+ }
+ var intvalue = Convert.ToInt32(s, 2);
+ monthvalue = oXvalue;
+ intlist[i - 1] = intvalue;
+ }
+ }
+ }
+ else
+ {
+
+ for (int i = 1; i < 13; i++)
+ {
+
+ if (i >= b1 && i <= b2)
+ {
+ switch (i)
+ {
+ case 1:
+ {
+ oXvalue = 1;
+ }
+ break;
+ case 2:
+ {
+ oXvalue = 2;
+ }
+ break;
+ case 3:
+ {
+ oXvalue = 4;
+ }
+ break;
+ case 4:
+ {
+ oXvalue = 8;
+ }
+ break;
+ case 5:
+ {
+ oXvalue = 16;
+ }
+ break;
+ case 6:
+ {
+ oXvalue = 32;
+ }
+ break;
+ case 7:
+ {
+ oXvalue = 64;
+ }
+ break;
+ case 8:
+ {
+ oXvalue = 96;
+ }
+ break;
+ case 9:
+ {
+ oXvalue = 128;
+ }
+ break;
+ case 10:
+ {
+ oXvalue = 256;
+ }
+ break;
+ case 11:
+ {
+ oXvalue = 512;
+ }
+ break;
+ case 12:
+ {
+ oXvalue = 1024;
+ }
+ break;
+
+ }
+ string s = "";
+ int days = DateTime.DaysInMonth(dtNow.Year, i);
+
+ if (i == b1)
+ {
+ for (int j = 32; j > 0; j--)
+ {
+ if (j >= c1 && j <= days)
+ {
+ s += "1";
+ }
+ else
+ {
+ s += "0";
+ }
+
+ }
+ }
+ else if (i == b2)
+ {
+ for (int j = 32; j > 0; j--)
+ {
+ if (j >= 0 && j <= c2)
+ {
+ s += "1";
+ }
+ else
+ {
+ s += "0";
+ }
+
+ }
+
+ }
+ else
+ {
+
+ for (int j = 32; j > 0; j--)
+ {
+ if (j >= 0 && j <= days)
+ {
+ s += "1";
+ }
+ else
+ {
+ s += "0";
+ }
+
+ }
+ }
+ var intvalue = Convert.ToInt32(s, 2);
+ intlist[i - 1] = intvalue;
+ monthvalue += oXvalue;
+
+ }
+ }
+ }
+
+ Common.Logic.CurrentLogic.TimeAttribute.SelectMonth = monthvalue;
+ Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate = new List<int>(intlist);
+ }
+ }
+}
--
Gitblit v1.8.0