簡體   English   中英

如何將當前日期與提前 5 天的迭代和 object 的日期進行比較,其中每三個小時有一個值

[英]How to compare current date with iteration for 5 days ahead and date from object which has a value every three hours

我希望每個日期都有一個天氣預報,每三個小時有一次數據,以獲取最大的最小值和平均值。

我設法在列表中寫入今天的值,但檢查中的日期不同,調試器跳過檢查,因此其他日期寫入相同的值但它們不正確。

我寫了這段代碼:

var tempArray = weatherBindingData.WeatherDataForecastHourly.List;

            var TemperaturesList = new List<TemperatureMinMaxAvg>();

            DateTime CurrentDate = DateTime.Now;

            for (var i = 0; i < 5; i++)
            {
                double TempMinValue = 100;

                double TempMaxValue = -100;

                var DateTimeNow = CurrentDate.ToString("yyyy-MM-dd");

                var DateTimeNowDateOnly = CurrentDate.Date;

                foreach (var item in tempArray)
                {
                    DateTime DatesTemp1 = DateTime.ParseExact(item.DateTimeFull, "yyyy-MM-dd HH:mm:ss",
                                               System.Globalization.CultureInfo.InvariantCulture);

                    var TempDayNowDateOnly = DatesTemp1.Date;

                    var TempDay = DatesTemp1.ToString("yyyy-MM-dd");

                    if (TempDay == DateTimeNow)
                    {
                        TempMinValue = Math.Min(TempMinValue, item.MainForecasts.TempMinForecast);

                        TempMaxValue = Math.Max(TempMaxValue, item.MainForecasts.TempMaxForecast);
                    }
                    TemperaturesList.Add(new TemperatureMinMaxAvg()
                    {
                        MinTemperature = TempMinValue,
                        MaxTemperature = TempMaxValue,
                        DateTimeFull = TempDay
                    });
                }
                
                CurrentDate.AddDays(1);
            }

對於當前日期,指數較少,因為數據來自 API 的最近小時。

例如,如果當前是 17:00,則當前日期的數據將進入 18:00 21:00 和 24:00 的三個索引中。 明天,指數為 8,每三小時有一次數據,以此類推,持續 5 天。 我想取今天和未來 4 天的最小值和最大值。

在今天之后的每一天的第二天發生的迭代之后,記錄下一天的當天的最后一個數據,數據變得不真實。

我的來自TemperatureList的 output 數據是:

TemperaturesList    Count = 45  
[0] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "2021-04-06"    
MaxTemperature  9.58    
MinTemperature  9.17    
Non-public members      

[1] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "2021-04-06"    
MaxTemperature  12.2    
MinTemperature  9.17    
Non-public members      

[2] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "2021-04-06"    
MaxTemperature  13.53   
MinTemperature  9.17    
Non-public members  

[3] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "2021-04-07"    
MaxTemperature  13.53   
MinTemperature  9.17    
Non-public members      

今天的最后一個值被記錄到其他日期直到結束。

這是輸入數據:

weatherBindingData  {WeatherLocationInfo.WeatherBindingData}    
WeatherDataAirForecast  {WeatherLocationInfo.WeatherDataAir}    
WeatherDataCurrent  {WeatherLocationInfo.WeatherData}   
WeatherDataForecastHourly   {WeatherLocationInfo.WeatherDataForecast}   
List    {WeatherLocationInfo.List[40]}  

[0] {WeatherLocationInfo.List}  
ChanceOfRain    0   
CloudsForecast  {WeatherLocationInfo.CloudsForecast}    
DateTimeFull    "2021-04-06 15:00:00"   
MainForecasts   {WeatherLocationInfo.MainForecast}  
FeelsLikeForecast   8.62    
HumidityForecast    79  
PressureForecast    1017    
PressureGroundLevelForecast 1016    
SeaLevelForecast    1017    
TempForecast    9.16    
TempMaxForecast 9.58    
TempMinForecast 9.16    
Non-public members      
RainForecast    (null)  
SnowForecast    (null)  
WeatherForecast {WeatherLocationInfo.WeatherForecast[1]}    
WindForecast    {WeatherLocationInfo.WindForecast}  
Non-public members      

[1] {WeatherLocationInfo.List}  
ChanceOfRain    0   
CloudsForecast  {WeatherLocationInfo.CloudsForecast}    
DateTimeFull    "2021-04-06 18:00:00"   
MainForecasts   {WeatherLocationInfo.MainForecast}  
FeelsLikeForecast   10.48   
HumidityForecast    70  
PressureForecast    1018    
PressureGroundLevelForecast 1016    
SeaLevelForecast    1018    
TempForecast    11.45   
TempMaxForecast 12.2    
TempMinForecast 11.45   
Non-public members      
RainForecast    (null)  
SnowForecast    (null)  
WeatherForecast {WeatherLocationInfo.WeatherForecast[1]}    
WindForecast    {WeatherLocationInfo.WindForecast}  
Non-public members  

[2] {WeatherLocationInfo.List}  
ChanceOfRain    0   
CloudsForecast  {WeatherLocationInfo.CloudsForecast}    
DateTimeFull    "2021-04-06 21:00:00"   
MainForecasts   {WeatherLocationInfo.MainForecast}  
FeelsLikeForecast   12.27   
HumidityForecast    64  
PressureForecast    1017    
PressureGroundLevelForecast 1015    
SeaLevelForecast    1017    
TempForecast    13.22   
TempMaxForecast 13.53   
TempMinForecast 13.22   
Non-public members      
RainForecast    (null)  
SnowForecast    (null)  
WeatherForecast {WeatherLocationInfo.WeatherForecast[1]}    
WindForecast    {WeatherLocationInfo.WindForecast}  
Non-public members      

[3] {WeatherLocationInfo.List}  
ChanceOfRain    0   
CloudsForecast  {WeatherLocationInfo.CloudsForecast}    
DateTimeFull    "2021-04-07 00:00:00"   
MainForecasts   {WeatherLocationInfo.MainForecast}  
FeelsLikeForecast   11.68   
HumidityForecast    71  
PressureForecast    1018    
PressureGroundLevelForecast 1016    
SeaLevelForecast    1018    
TempForecast    12.52   
TempMaxForecast 12.55   
TempMinForecast 12.52   
Non-public members      
RainForecast    (null)  
SnowForecast    (null)  
WeatherForecast {WeatherLocationInfo.WeatherForecast[1]}    
WindForecast    {WeatherLocationInfo.WindForecast}  
Non-public members      

[4] {WeatherLocationInfo.List}  
ChanceOfRain    0   
CloudsForecast  {WeatherLocationInfo.CloudsForecast}    
DateTimeFull    "2021-04-07 03:00:00"   
MainForecasts   {WeatherLocationInfo.MainForecast}  
FeelsLikeForecast   9.64    
HumidityForecast    83  
PressureForecast    1019    
PressureGroundLevelForecast 1017    
SeaLevelForecast    1019    
TempForecast    10.38   
TempMaxForecast 10.38   
TempMinForecast 10.38   
Non-public members      
RainForecast    (null)  
SnowForecast    (null)  
WeatherForecast {WeatherLocationInfo.WeatherForecast[1]}    
WindForecast    {WeatherLocationInfo.WindForecast}  
Non-public members      

我認為 if 語句本身無法正常工作,並且在今天的日期之后沒有執行並且沒有正確記錄其他 4 天的數據。

如果將值標准化為同一時區,您似乎可以只比較日期並刪除小時:

var DateTimeNowDateOnly = CurrentDate.Date;

foreach (var item in tempArray)
{                
   var TempDayNowDateOnly = DatesTemp1.Date;
   if (TempDayNowDateOnly >= DateTimeNowDateOnly && 
       TempDayNowDateOnly < DateTimeNowDateOnly.AddDays(3) )
   {
    ...
   }
}

output 是相同的,今天之后調試器會跳過 if 語句。

    TemperaturesList    Count = 64  
[0] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "4/6/2021 12:00:00 AM"  
MaxTemperature  9.58    
MinTemperature  9.11    
Non-public members      

[1] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "4/6/2021 12:00:00 AM"  
MaxTemperature  12.2    
MinTemperature  9.11    
Non-public members      

[2] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "4/6/2021 12:00:00 AM"  
MaxTemperature  13.53   
MinTemperature  9.11    
Non-public members  

[3] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "4/7/2021 12:00:00 AM"  
MaxTemperature  13.53   
MinTemperature  9.11    
Non-public members      

[4] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "4/7/2021 12:00:00 AM"  
MaxTemperature  13.53   
MinTemperature  9.11    
Non-public members  

[5] {WeatherLocationInfo.TemperatureMinMaxAvg}  
AvgTemperature  0   
DateTimeFull    "4/7/2021 12:00:00 AM"  
MaxTemperature  13.53   
MinTemperature  9.11    
Non-public members      

今天日期的最后一個值記錄在所有其他日期,直到結束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM