[英]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.