コード例 #1
0
        public ActualWeatherEntry GetActualWeatherEntryApi(float Lat, float Long, DateTime day)
        {
            var excludeBlocks = new Exclude[]
            {
                Exclude.alerts,
                Exclude.currently
            };

            var request    = new ForecastIORequest("4ad8e97b2cd0133665a1e30b43fa7973", Lat, Long, day, Unit.us);
            var response   = request.Get().daily;
            var returnObj  = new ActualWeatherEntry();
            var dayWeather = response.data.First();

            returnObj.ActualHi     = dayWeather.temperatureMax;
            returnObj.ActualLow    = dayWeather.temperatureMin;
            returnObj.ActualPrecip = dayWeather.precipType != null;
            if (dayWeather.precipType != null)
            {
                returnObj.ActualPrecipType = dayWeather.precipType;
            }
            if (returnObj.ActualPrecipType != null && returnObj.ActualPrecipType == "snow")
            {
                returnObj.ActualPrecipAmount = dayWeather.precipAccumulation;
            }
            return(returnObj);
        }
コード例 #2
0
        public ActualWeatherEntry GetActualWeatherEntryApi(string airport, string city, string state, DateTime day)
        {
            HtmlWeb web   = new HtmlWeb();
            var     thing = string.Format(
                "https://www.wunderground.com/history/airport/{0}/{1}/{2}/{3}/DailyHistory.html?req_city={4}&req_statename={5}",
                airport, day.Year, day.Month, day.Day, city, state);
            HtmlDocument document = web.Load(thing);
            //HtmlDocument document =  web.Load("https://www.wunderground.com/history/airport/KDCA/2017/1/3/DailyHistory.html");
            var mainTable = document.DocumentNode.SelectNodes("//table[@id='historyTable']").First();

            var minTemp = mainTable.ChildNodes[3].ChildNodes[7].ChildNodes[3].ChildNodes[1].ChildNodes[0].InnerHtml;
            var maxTemp = mainTable.ChildNodes[3].ChildNodes[5].ChildNodes[3].ChildNodes[1].ChildNodes[0].InnerHtml;
            var Evnt    = "";
            var snow    = "";

            try
            {
                snow = mainTable.ChildNodes[3].ChildNodes[43].ChildNodes[3].ChildNodes[1].ChildNodes[0].InnerHtml;
                Evnt = mainTable.ChildNodes[3].ChildNodes[65].ChildNodes[3].ChildNodes[0].InnerHtml.Trim();
            }
            catch (Exception)
            {
                snow = "none";
                //Total amount of precip if there is no now column
                var amt = mainTable.ChildNodes[3].ChildNodes[37].ChildNodes[3].ChildNodes[1].ChildNodes[0].InnerHtml.Trim();
                Evnt = mainTable.ChildNodes[3].ChildNodes[57].ChildNodes[3].ChildNodes[0].InnerHtml.Trim();
            }
            var returnObj = new ActualWeatherEntry();

            returnObj.ActualHi     = Convert.ToSingle(maxTemp);
            returnObj.ActualLow    = Convert.ToSingle(minTemp);
            returnObj.ActualPrecip = Evnt == "Snow" || Evnt == "Rain";
            if (Evnt == "Snow")
            {
                returnObj.ActualPrecipAmount = Convert.ToSingle(snow);
            }

            return(returnObj);
        }