C# C# Streams and Data Processing Parsing Data Working with DateTime

Max Voigtländer
Max Voigtländer
2,484 Points

Bummer: Did you try to parse the element at values[1]? That's what holds the date in the CSV file.

I get the above message. Really nor sure whats wrong with my code:

Program.cs
using System;
using System.IO;

namespace Treehouse.CodeChallenges
{
    public class Program
    {
         public static WeatherForecast ParseWeatherForecast(string[] values)
        {
            DateTime valueTime; 
            var weatherForecast = new WeatherForecast();
            weatherForecast.WeatherStationId = values[0];

            CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");

            if(DateTime.TryParse(value[1], culture, DateTimeStyles.None, out valueTime))
            {
                weatherForecast.TimeOfDay = valueTime;
            }

            return weatherForecast;
        }

        public static void Main(string[] arg)
        {
        }
    }
}
WeatherForecast.cs
using System;

/* Sample CSV Data 

weather_station_id,time_of_day,condition,temperature,precipitation_chance,precipitation_amount
HGKL8Q,06/11/2016 0:00,Rain,53,0.3,0.03
HGKL8Q,06/11/2016 6:00,Cloudy,56,0.08,0.01
HGKL8Q,06/11/2016 12:00,PartlyCloudy,70,0,0
HGKL8Q,06/11/2016 18:00,Sunny,76,0,0
HGKL8Q,06/11/2016 19:00,Clear,74,0,0
*/

namespace Treehouse.CodeChallenges
{
    public class WeatherForecast
    {
        public string WeatherStationId { get; set; }
        public DateTime TimeOfDay { get; set; }

    }
}

1 Answer

Steven Parker
Steven Parker
173,578 Points

You're pretty close! But there are a few issues:

  • the namespaces for the fancy "TryParse" have not been included, but you don't really need them
  • you can use the simpler 2-argument variant of "TryParse" that doesn't require culture or styles
  • the instructions say "add a new variable named timeOfDay" but this code has "valueTime" instead