From 47f179be722a61c95cc03c8f90e1aa91c12d1124 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期三, 23 十月 2024 18:49:23 +0800
Subject: [PATCH] UI走查,安卓

---
 HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoHistroyPage.cs |  542 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 354 insertions(+), 188 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoHistroyPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoHistroyPage.cs
index 4ebb060..8075cb0 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoHistroyPage.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/Acst/InverterJinmaoHistroyPage.cs
@@ -63,10 +63,15 @@
 
             var contentView = new VerticalScrolViewLayout()
             {
-                Y = Application.GetRealHeight(74 + 16),
+                Y = Application.GetRealHeight(74),
                 Height = Application.GetRealHeight(Application.DesignHeight - 74),
             };
             bodyView.AddChidren(contentView);
+
+            contentView.AddChidren(new Button()
+            {
+                Height = Application.GetRealWidth(16)
+            });
 
             #region 鍙戠數閲�
             infoView1 = new FrameLayout()
@@ -133,6 +138,9 @@
             };
             infoView1_DateView.AddChidren(infoView1_Date_Month);
 
+#if __IOS__
+            infoView1_DateView.AddChidren(new Button() { Width = Application.GetRealWidth(2) });
+#endif
 
             infoView1_Date_Year = new Button()
             {
@@ -217,7 +225,7 @@
 
             echartOption1 = new EchartsOption_Histogram();
             echartOption1.xTitle = "鏃堕棿";
-            echartOption1.yTitle = "鐢甸噺锛坘w锛�";
+            echartOption1.yTitle = "鐢甸噺锛坘wh锛�";
             //echartOption.InitXdataText(new List<string>()
             //{
             //    "21","22","23","24","25","26","26","27","28","29",
@@ -337,8 +345,9 @@
                 IsSelected = false,
             };
             infoView2_DateView.AddChidren(infoView2_Date_Month);
-
-
+#if __IOS__
+            infoView2_DateView.AddChidren(new Button() { Width = Application.GetRealWidth(2)});
+#endif
             infoView2_Date_Year = new Button()
             {
                 Width = Application.GetRealWidth(103),
@@ -422,7 +431,7 @@
 
             echartOption2 = new EchartsOption_Histogram();
             echartOption2.xTitle = "鏃堕棿";
-            echartOption2.yTitle = "鐢甸噺锛坘w锛�";
+            echartOption2.yTitle = "鐢甸噺锛坘wh锛�";
             //echartOption2.InitXdataText(new List<string>()
             //{
             //    "21","22","23","24","25","26","26","27","28","29",
@@ -471,7 +480,6 @@
 
 
             #endregion
-
 
             contentView.AddChidren(new Button()
             {
@@ -615,6 +623,7 @@
 
                             Application.RunOnMainThread(() =>
                             {
+                                var ddd = echartOption2.InitOption();
                                 infoView2_EchartsView.ShowWithOption(echartOption2.InitOption());
                             });
                         }
@@ -647,7 +656,7 @@
                 var pvElecQueryDate = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1);
                 if (queryType1 == QueryType.day_hour)
                 {
-                    if (pvElecQueryDate.Year == 2023 && pvElecQueryDate.Month == 1 && pvElecQueryDate.Day == 1)
+                    if (pvElecQueryDate.Year <= 2023 && pvElecQueryDate.Month == 1 && pvElecQueryDate.Day == 1)
                     {
                         return;
                     }
@@ -656,16 +665,17 @@
                 }
                 else if (queryType1 == QueryType.custom_month)
                 {
-                    if (pvElecQueryDate.Year == 2023 && pvElecQueryDate.Month == 1)
+                    if (pvElecQueryDate.Year <= 2023 && pvElecQueryDate.Month == 1)
                     {
                         return;
                     }
                     pvElecQueryDate = pvElecQueryDate.AddMonths(-1);
+                    queryTime_Day1 = pvElecQueryDate.Day;
                     infoView1_DateInfo_DateTextButton.Text = pvElecQueryDate.ToString("yyyy-MM");
                 }
                 else if (queryType1 == QueryType.custom_year)
                 {
-                    if (pvElecQueryDate.Year == 2023)
+                    if (pvElecQueryDate.Year <= 2023)
                     {
                         return;
                     }
@@ -679,41 +689,38 @@
             };
             infoView1_DateInfo_NextClickButton.MouseUpEventHandler = (sender, e) =>
             {
-                var tempQueryDate = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1);
+                var pvElecQueryDate = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1);
                 if (queryType1 == QueryType.day_hour)
                 {
-                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month && tempQueryDate.Day == DateTime.Now.Day)
+                    if (pvElecQueryDate.Year == DateTime.Now.Year && pvElecQueryDate.Month == DateTime.Now.Month && pvElecQueryDate.Day == DateTime.Now.Day)
                     {
                         return;
                     }
-                    tempQueryDate = tempQueryDate.AddDays(1);
-                    infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM-dd");
+                    pvElecQueryDate = pvElecQueryDate.AddDays(1);
+                    infoView1_DateInfo_DateTextButton.Text = pvElecQueryDate.ToString("yyyy-MM-dd");
                 }
                 else if (queryType1 == QueryType.custom_month)
                 {
-                    if (tempQueryDate.Year == DateTime.Now.Year && tempQueryDate.Month == DateTime.Now.Month)
+                    if (pvElecQueryDate.Year == DateTime.Now.Year && pvElecQueryDate.Month == DateTime.Now.Month)
                     {
                         return;
                     }
-                    tempQueryDate = tempQueryDate.AddMonths(1);
-                    infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy-MM");
+                    pvElecQueryDate = pvElecQueryDate.AddMonths(1);
+                    queryTime_Day1 = pvElecQueryDate.Day;
+                    infoView1_DateInfo_DateTextButton.Text = pvElecQueryDate.ToString("yyyy-MM");
                 }
                 else if (queryType1 == QueryType.custom_year)
                 {
-                    if (tempQueryDate.Year == 2023)
+                    if (pvElecQueryDate.Year >= DateTime.Now.Year)
                     {
                         return;
                     }
-                    if (tempQueryDate.Year == DateTime.Now.Year)
-                    {
-                        return;
-                    }
-                    tempQueryDate = tempQueryDate.AddYears(1);
-                    infoView1_DateInfo_DateTextButton.Text = tempQueryDate.ToString("yyyy");
+                    pvElecQueryDate = pvElecQueryDate.AddYears(1);
+                    infoView1_DateInfo_DateTextButton.Text = pvElecQueryDate.ToString("yyyy");
                 }
-                queryTime_Year1 = tempQueryDate.Year;
-                queryTime_Month1 = tempQueryDate.Month;
-                queryTime_Day1 = tempQueryDate.Day;
+                queryTime_Year1 = pvElecQueryDate.Year;
+                queryTime_Month1 = pvElecQueryDate.Month;
+                queryTime_Day1 = pvElecQueryDate.Day;
                 getPvElectricityHistory();
             };
 
@@ -727,6 +734,12 @@
                 infoView1_Date_Month.IsSelected = false;
                 infoView1_Date_Year.IsSelected = false;
                 queryType1 = QueryType.day_hour;
+                if (DateTime.Now.Date < new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1))
+                {
+                    queryTime_Year1 = DateTime.Now.Year;
+                    queryTime_Month1 = DateTime.Now.Month;
+                    queryTime_Day1 = DateTime.Now.Day;
+                }
                 infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM-dd");
                 getPvElectricityHistory();
             };
@@ -740,6 +753,11 @@
                 infoView1_Date_Month.IsSelected = true;
                 infoView1_Date_Year.IsSelected = false;
                 queryType1 = QueryType.custom_month;
+                if (DateTime.Now.Date < new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1))
+                {
+                    queryTime_Year1 = DateTime.Now.Year;
+                    queryTime_Month1 = DateTime.Now.Month;
+                }
                 infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM");
                 getPvElectricityHistory();
             };
@@ -766,7 +784,7 @@
                 var waterQueryDate = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2);
                 if (queryType2 == QueryType.day_hour)
                 {
-                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 1)
+                    if (waterQueryDate.Year <= 2023 && waterQueryDate.Month == 1 && waterQueryDate.Day == 1)
                     {
                         return;
                     }
@@ -775,16 +793,17 @@
                 }
                 else if (queryType2 == QueryType.custom_month)
                 {
-                    if (waterQueryDate.Year == 2023 && waterQueryDate.Month == 1)
+                    if (waterQueryDate.Year <= 2023 && waterQueryDate.Month == 1)
                     {
                         return;
                     }
                     waterQueryDate = waterQueryDate.AddMonths(-1);
+                    queryTime_Day2 = waterQueryDate.Day;
                     infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM");
                 }
                 else if (queryType2 == QueryType.custom_year)
                 {
-                    if (waterQueryDate.Year == 2023)
+                    if (waterQueryDate.Year <= 2023)
                     {
                         return;
                     }
@@ -815,15 +834,12 @@
                         return;
                     }
                     waterQueryDate = waterQueryDate.AddMonths(1);
+                    queryTime_Day2 = waterQueryDate.Day;
                     infoView2_DateInfo_DateTextButton.Text = waterQueryDate.ToString("yyyy-MM");
                 }
                 else if (queryType2 == QueryType.custom_year)
                 {
-                    if (waterQueryDate.Year == 2023)
-                    {
-                        return;
-                    }
-                    if (waterQueryDate.Year == DateTime.Now.Year)
+                    if (waterQueryDate.Year >= DateTime.Now.Year)
                     {
                         return;
                     }
@@ -845,6 +861,12 @@
                 infoView2_Date_Month.IsSelected = false;
                 infoView2_Date_Year.IsSelected = false;
                 queryType2 = QueryType.day_hour;
+                if (DateTime.Now.Date < new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2))
+                {
+                    queryTime_Year2 = DateTime.Now.Year;
+                    queryTime_Month2 = DateTime.Now.Month;
+                    queryTime_Day2 = DateTime.Now.Day;
+                }
                 infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM-dd");
                 getLoadElectricityHistory();
             };
@@ -858,6 +880,11 @@
                 infoView2_Date_Month.IsSelected = true;
                 infoView2_Date_Year.IsSelected = false;
                 queryType2 = QueryType.custom_month;
+                if (DateTime.Now.Date < new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2))
+                {
+                    queryTime_Year2 = DateTime.Now.Year;
+                    queryTime_Month2 = DateTime.Now.Month;
+                }
                 infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM");
                 getLoadElectricityHistory();
             };
@@ -966,7 +993,7 @@
                 Radius = (uint)Application.GetRealWidth(12),
             };
             optionBaseView.AddChidren(topView);
-            topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
+            optionBaseView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
 
             var btnCancel = new Button()
             {
@@ -981,7 +1008,7 @@
 
             var btnConfrim = new Button()
             {
-                X = Application.GetRealWidth(160),
+                X = Application.GetRealWidth(163),
                 Width = Application.GetRealWidth(160),
                 TextAlignment = TextAlignment.CenterRight,
                 TextColor = CSS_Color.MainColor,
@@ -989,6 +1016,19 @@
                 TextID = StringId.Confirm,
             };
             topView.AddChidren(btnConfrim);
+
+            var btnToday = new Button()
+            {
+                X = Application.GetRealWidth(160 - 32) - btnConfrim.GetTextWidth(),
+                Width = Application.GetRealWidth(160),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                Visible = false,
+                Enable = false,
+                Text = "浠婃棩",
+            };
+            topView.AddChidren(btnToday);
 
             UIPickerView uIPickerView = new UIPickerView()
             {
@@ -1015,101 +1055,118 @@
             };
             uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
             {
-                if (pickerItems_Year[int1] != item1.ToString())
+                try
                 {
-                    int.TryParse(pickerItems_Year[int1], out item1);
-                    if (queryType1 == QueryType.custom_month || queryType1 == QueryType.day_hour)
+                    if (int1 < 0)
                     {
-                        pickerItems_Month = new List<string>();
-                        if (item1 == DateTime.Now.Year)
+                        int1 = 1;
+                    }
+                    if (pickerItems_Year[int1] != item1.ToString())
+                    {
+                        int.TryParse(pickerItems_Year[int1], out item1);
+                        if (queryType1 == QueryType.custom_month || queryType1 == QueryType.day_hour)
                         {
-                            int addMonth = 0;
-                            while (DateTime.Now.Month > addMonth)
+                            pickerItems_Month = new List<string>();
+                            if (item1 == DateTime.Now.Year)
                             {
-                                addMonth++;
-                                pickerItems_Month.Add(addMonth.ToString());
-                            }
-                        }
-                        else
-                        {
-                            for (var i = 1; i < 13; i++)
-                            {
-                                pickerItems_Month.Add(i.ToString());
-                            }
-                        }
-                        if (queryType1 == QueryType.day_hour)
-                        {
-                            pickerItems_Day = new List<string>();
-                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
-                            {
-                                int addDay = 0;
-                                while (DateTime.Now.Day > addDay)
+                                int addMonth = 0;
+                                while (DateTime.Now.Month > addMonth)
                                 {
-                                    addDay++;
-                                    pickerItems_Day.Add(addDay.ToString());
+                                    addMonth++;
+                                    pickerItems_Month.Add(addMonth.ToString());
                                 }
                             }
                             else
                             {
-                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
+                                for (var i = 1; i < 13; i++)
                                 {
-                                    pickerItems_Day.Add(i.ToString());
+                                    pickerItems_Month.Add(i.ToString());
+                                }
+                            }
+                            if (queryType1 == QueryType.day_hour)
+                            {
+                                pickerItems_Day = new List<string>();
+                                if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
+                                {
+                                    int addDay = 0;
+                                    while (DateTime.Now.Day > addDay)
+                                    {
+                                        addDay++;
+                                        pickerItems_Day.Add(addDay.ToString());
+                                    }
+                                }
+                                else
+                                {
+                                    for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
+                                    {
+                                        pickerItems_Day.Add(i.ToString());
+                                    }
                                 }
                             }
                         }
-                    }
-                    uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
-                    uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
-                        pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
-                        pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
-
-                }
-                if (pickerItems_Month != null)
-                {
-                    if (int2 > pickerItems_Month.Count)
-                    {
-                        int2 = 0;
-                    }
-                    if (pickerItems_Month[int2] != item2.ToString())
-                    {
-                        int.TryParse(pickerItems_Month[int2], out item2);
-                        if (queryType1 == QueryType.day_hour)
-                        {
-                            pickerItems_Day = new List<string>();
-                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
-                            {
-                                int addDay = 0;
-                                while (DateTime.Now.Day > addDay)
-                                {
-                                    addDay++;
-                                    pickerItems_Day.Add(addDay.ToString());
-                                }
-                            }
-                            else
-                            {
-                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
-                                {
-                                    pickerItems_Day.Add(i.ToString());
-                                }
-                            }
-                        }
-
                         uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                         uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                             pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                             pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
+
+                    }
+                    if (pickerItems_Month != null)
+                    {
+                        if (int2 >= pickerItems_Month.Count || int2 < 0)
+                        {
+                            int2 = 0;
+                        }
+                        if (pickerItems_Month[int2] != item2.ToString())
+                        {
+                            int.TryParse(pickerItems_Month[int2], out item2);
+                            if (queryType1 == QueryType.day_hour)
+                            {
+                                pickerItems_Day = new List<string>();
+                                if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
+                                {
+                                    int addDay = 0;
+                                    while (DateTime.Now.Day > addDay)
+                                    {
+                                        addDay++;
+                                        pickerItems_Day.Add(addDay.ToString());
+                                    }
+                                }
+                                else
+                                {
+                                    for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
+                                    {
+                                        pickerItems_Day.Add(i.ToString());
+                                    }
+                                }
+                            }
+                            try
+                            {
+                                uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
+                                uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
+                                    pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
+                                    pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
+                            }
+                            catch (Exception ex)
+                            {
+                                MainPage.Log("Error", $"閲戣寕鍘嗗彶鏁版嵁鎺т欢寮傚父:{ex.Message}");
+                            }
+                        }
+                    }
+                    if (pickerItems_Day != null)
+                    {
+                        if (int3 >= pickerItems_Day.Count || int3 < 0)
+                        {
+                            int3 = 0;
+                        }
+                        if (pickerItems_Day[int3] != item3.ToString())
+                        {
+                            int.TryParse(pickerItems_Day[int3], out item3);
+                        }
                     }
                 }
-                if (pickerItems_Day != null)
+                catch (Exception ex)
                 {
-                    if (int3 >= pickerItems_Day.Count)
-                    {
-                        int3 = 0;
-                    }
-                    if (pickerItems_Day[int3] != item3.ToString())
-                    {
-                        int.TryParse(pickerItems_Day[int3], out item3);
-                    }
+                    MainPage.Log("Error", $"閲戣寕鐑按鍣ㄦ棩鏈熼�夋嫨寮傚父锛歿ex.StackTrace}");
                 }
             };
             btnConfrim.MouseUpEventHandler = (sender, e) =>
@@ -1123,7 +1180,7 @@
                     {
                         queryTime_Month1 = item2;
                     }
-                    infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, queryTime_Day1).ToString("yyyy-MM");
+                    infoView1_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year1, queryTime_Month1, 1).ToString("yyyy-MM");
                     if (queryType1 == QueryType.day_hour)
                     {
                         if (item3 != queryTime_Day1)
@@ -1136,6 +1193,47 @@
                 getPvElectricityHistory();
             };
 
+
+            if (queryType1 == QueryType.day_hour)
+            {
+                try
+                {
+                    btnToday.Visible = btnToday.Enable = true;
+                    btnToday.MouseUpEventHandler = (sender, e) =>
+                    {
+                        item3 = queryTime_Day1 = DateTime.Now.Day;
+                        item2 = queryTime_Month1 = DateTime.Now.Month;
+                        item1 = queryTime_Year1 = DateTime.Now.Year;
+                        pickerItems_Year = new List<string>();
+                        pickerItems_Year.Add("2023");
+                        while (DateTime.Now.Year > 2022 + pickerItems_Year.Count)
+                        {
+                            pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString());
+                        }
+
+                        pickerItems_Month = new List<string>();
+                        int addMonth = 0;
+                        while (DateTime.Now.Month > addMonth)
+                        {
+                            addMonth++;
+                            pickerItems_Month.Add(addMonth.ToString());
+                        }
+                        pickerItems_Day = new List<string>();
+                        int addDay = 0;
+                        while(DateTime.Now.Day > addDay)
+                        {
+                            addDay++;
+                            pickerItems_Day.Add(addDay.ToString());
+                        }
+
+                        uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
+                        uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(queryTime_Year1.ToString()),
+                            pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(queryTime_Month1.ToString()),
+                            pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(queryTime_Day1.ToString()));
+                    };
+                }
+                catch { }
+            }
         }
 
         public void SetWaterQureyDateDialog()
@@ -1274,101 +1372,112 @@
             };
             uIPickerView.OnSelectChangeEvent = (int1, int2, int3) =>
             {
-                if (pickerItems_Year[int1] != item1.ToString())
+                try
                 {
-                    int.TryParse(pickerItems_Year[int1], out item1);
-                    if (queryType2 == QueryType.custom_month || queryType2 == QueryType.day_hour)
+                    if (int1 < 0)
                     {
-                        pickerItems_Month = new List<string>();
-                        if (item1 == DateTime.Now.Year)
+                        int1 = 0;
+                    }
+                    if (pickerItems_Year[int1] != item1.ToString())
+                    {
+                        int.TryParse(pickerItems_Year[int1], out item1);
+                        if (queryType2 == QueryType.custom_month || queryType2 == QueryType.day_hour)
                         {
-                            int addMonth = 0;
-                            while (DateTime.Now.Month > addMonth)
+                            pickerItems_Month = new List<string>();
+                            if (item1 == DateTime.Now.Year)
                             {
-                                addMonth++;
-                                pickerItems_Month.Add(addMonth.ToString());
-                            }
-                        }
-                        else
-                        {
-                            for (var i = 1; i < 13; i++)
-                            {
-                                pickerItems_Month.Add(i.ToString());
-                            }
-                        }
-                        if (queryType2 == QueryType.day_hour)
-                        {
-                            pickerItems_Day = new List<string>();
-                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
-                            {
-                                int addDay = 0;
-                                while (DateTime.Now.Day > addDay)
+                                int addMonth = 0;
+                                while (DateTime.Now.Month > addMonth)
                                 {
-                                    addDay++;
-                                    pickerItems_Day.Add(addDay.ToString());
+                                    addMonth++;
+                                    pickerItems_Month.Add(addMonth.ToString());
                                 }
                             }
                             else
                             {
-                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
+                                for (var i = 1; i < 13; i++)
                                 {
-                                    pickerItems_Day.Add(i.ToString());
+                                    pickerItems_Month.Add(i.ToString());
+                                }
+                            }
+                            if (queryType2 == QueryType.day_hour)
+                            {
+                                pickerItems_Day = new List<string>();
+                                if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
+                                {
+                                    int addDay = 0;
+                                    while (DateTime.Now.Day > addDay)
+                                    {
+                                        addDay++;
+                                        pickerItems_Day.Add(addDay.ToString());
+                                    }
+                                }
+                                else
+                                {
+                                    for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
+                                    {
+                                        pickerItems_Day.Add(i.ToString());
+                                    }
                                 }
                             }
                         }
-                    }
-                    uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
-                    uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
-                        pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
-                        pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
-
-                }
-                if (pickerItems_Month != null)
-                {
-                    if (int2 > pickerItems_Month.Count)
-                    {
-                        int2 = 0;
-                    }
-                    if (pickerItems_Month[int2] != item2.ToString())
-                    {
-                        int.TryParse(pickerItems_Month[int2], out item2);
-                        if (queryType2 == QueryType.day_hour)
-                        {
-                            pickerItems_Day = new List<string>();
-                            if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
-                            {
-                                int addDay = 0;
-                                while (DateTime.Now.Day > addDay)
-                                {
-                                    addDay++;
-                                    pickerItems_Day.Add(addDay.ToString());
-                                }
-                            }
-                            else
-                            {
-                                for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
-                                {
-                                    pickerItems_Day.Add(i.ToString());
-                                }
-                            }
-                        }
-
                         uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
                         uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
                             pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
                             pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
+
+                    }
+                    if (pickerItems_Month != null)
+                    {
+                        if (int2 > pickerItems_Month.Count || int2 < 0)
+                        {
+                            int2 = 0;
+                        }
+                        if (pickerItems_Month[int2] != item2.ToString())
+                        {
+                            int.TryParse(pickerItems_Month[int2], out item2);
+                            if (queryType2 == QueryType.day_hour)
+                            {
+                                pickerItems_Day = new List<string>();
+                                if (item1 == DateTime.Now.Year && item2 == DateTime.Now.Month)
+                                {
+                                    int addDay = 0;
+                                    while (DateTime.Now.Day > addDay)
+                                    {
+                                        addDay++;
+                                        pickerItems_Day.Add(addDay.ToString());
+                                    }
+                                }
+                                else
+                                {
+                                    for (var i = 1; i <= DateTime.DaysInMonth(item1, item2); i++)
+                                    {
+                                        pickerItems_Day.Add(i.ToString());
+                                    }
+                                }
+                            }
+
+                            uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
+                            uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(item1.ToString()),
+                                pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(item2.ToString()),
+                                pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(item3.ToString()));
+                        }
+                    }
+                    if (pickerItems_Day != null)
+                    {
+                        if (int3 >= pickerItems_Day.Count || int3 < 0)
+                        {
+                            int3 = 0;
+                        }
+                        if (pickerItems_Day[int3] != item3.ToString())
+                        {
+                            int.TryParse(pickerItems_Day[int3], out item3);
+                        }
                     }
                 }
-                if (pickerItems_Day != null)
+                catch (Exception ex)
                 {
-                    if (int3 >= pickerItems_Day.Count)
-                    {
-                        int3 = 0;
-                    }
-                    if (pickerItems_Day[int3] != item3.ToString())
-                    {
-                        int.TryParse(pickerItems_Day[int3], out item3);
-                    }
+                    MainPage.Log("Error", $"閲戣寕鍏変紡鏃ユ湡2閫夋嫨寮傚父锛歿ex.StackTrace}");
                 }
             };
             btnConfrim.MouseUpEventHandler = (sender, e) =>
@@ -1382,7 +1491,7 @@
                     {
                         queryTime_Month2 = item2;
                     }
-                    infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, queryTime_Day2).ToString("yyyy-MM");
+                    infoView2_DateInfo_DateTextButton.Text = new DateTime(queryTime_Year2, queryTime_Month2, 1).ToString("yyyy-MM");
                     if (queryType2 == QueryType.day_hour)
                     {
                         if (item3 != queryTime_Day2)
@@ -1395,9 +1504,66 @@
                 getLoadElectricityHistory();
             };
 
+            var btnToday = new Button()
+            {
+                X = Application.GetRealWidth(160 - 32) - btnConfrim.GetTextWidth(),
+                Width = Application.GetRealWidth(160),
+                TextAlignment = TextAlignment.CenterRight,
+                TextColor = CSS_Color.MainColor,
+                TextSize = CSS_FontSize.TextFontSize,
+                Visible = false,
+                Enable = false,
+                Text = "浠婃棩",
+            };
+            topView.AddChidren(btnToday);
+
+
+            if (queryType2 == QueryType.day_hour)
+            {
+                try
+                {
+                    btnToday.Visible = btnToday.Enable = true;
+                    btnToday.MouseUpEventHandler = (sender, e) =>
+                    {
+                        item3 = queryTime_Day2 = DateTime.Now.Day;
+                        item2 = queryTime_Month2 = DateTime.Now.Month;
+                        item1 = queryTime_Year2 = DateTime.Now.Year;
+
+                        pickerItems_Year = new List<string>();
+                        pickerItems_Year.Add("2023");
+                        while (DateTime.Now.Year > 2022 + pickerItems_Year.Count)
+                        {
+                            pickerItems_Year.Add((2023 + pickerItems_Year.Count).ToString());
+                        }
+
+                        pickerItems_Month = new List<string>();
+                        int addMonth = 0;
+                        while (DateTime.Now.Month > addMonth)
+                        {
+                            addMonth++;
+                            pickerItems_Month.Add(addMonth.ToString());
+                        }
+                        pickerItems_Day = new List<string>();
+                        int addDay = 0;
+                        while (DateTime.Now.Day > addDay)
+                        {
+                            addDay++;
+                            pickerItems_Day.Add(addDay.ToString());
+                        }
+
+                        uIPickerView.setNPicker(pickerItems_Year, pickerItems_Month, pickerItems_Day);
+                        uIPickerView.setCurrentItems(pickerItems_Year.IndexOf(queryTime_Year2.ToString()),
+                            pickerItems_Month == null ? 0 : pickerItems_Month.IndexOf(queryTime_Month2.ToString()),
+                            pickerItems_Day == null ? 0 : pickerItems_Day.IndexOf(queryTime_Day2.ToString()));
+                    };
+                }
+                catch { }
+            }
+
         }
 
 
 
+
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0