Невозможно неявно преобразовать строку типа в System.date.time, но объявить в datetime

Я новичок в C # & amp; напиши какой-нибудь код. но получаю там ошибку. Ошибка: не могу неявно преобразовать строку типа в System.date.time, но я вижу здесь, я объявляю в строке

  public partial class HDate
    {
        private string StartYear;

        public string StartYear1
        {
            get { return StartYear; }
            set { StartYear = value; }
        }
        private string EndYear;

        public string EndYear1
        {
            get { return EndYear; }
            set { EndYear = value; }
        }
        private string Year;

        public string Year1
        {
            get { return Year; }
            set { Year = value; }
        }
        private DateTime StartDate;

        public DateTime StartDate1
        {
            get { return StartDate; }
            set { StartDate = value; }
        }
        private DateTime EndDate;

        public DateTime EndDate1
        {
            get { return EndDate; }
            set { EndDate = value; }
        }
        private string StartMonth;

        public string StartMonth1
        {
            get { return StartMonth; }
            set { StartMonth = value; }
        }
        private string EndMonth;

        public string EndMonth1
        {
            get { return EndMonth; }
            set { EndMonth = value; }
        }
        private DateTime StartDay;

        public DateTime StartDay1
        {
            get { return StartDay; }
            set { StartDay = value; }
        }
        private DateTime EndDay;

        public DateTime EndDay1
        {
            get { return EndDay; }
            set { EndDay = value; }
        }


        public HDate() { }

        public HDate(){
        DateTime today = DateTime.Now;
        int year = today.Year;
        int month = today.Month;
        DateTime day = today;

        DateTime StartDate = (StartYear + StartMonth + StartDay);
        DateTime EndDate   = (EndYear + EndMonth + EndDay);

        if (month <= 6)
        {
            //string StartYear = Convert.ToString(year-1);
            string StartYear = (year - 1).ToString();
            string StartMonth = Convert.ToString(7);
            string EndYear = Convert.ToString(year);
            string EndMonth = Convert.ToString(6);
            string EndDay = Convert.ToString(30);
        }
        else if(month >= 7)

        {
            string StartYear =Convert.ToString(year);
            string StartMonth = Convert.ToString(7);
            string StartDay = Convert.ToString(1);
            string EndYear = Convert.ToString(year+1);
            string EndMonth = Convert.ToString(6);
            string EndDay = Convert.ToString(30);

        }
           return StartDate+';'+EndDate;
       }

эти данные возвращают его в другую функцию ..

 SimpleVar19 июн. 2012 г., 06:59
Вы не можете возвращать значения в конструкторе, и я узнаю ваш код, но мы уже обсудили несколько хорошихC# books?
 John Gathogo19 июн. 2012 г., 07:01
Вы идете об этом неправильно. Правильный путь для начинающего - это прочитать старомодную книгу или полезные материалы / учебные пособия. Затем вы поймете, что вам не нужен весь код выше, чтобы создать дату или даже манипулировать ею
 Talha19 июн. 2012 г., 06:58
Можете ли вы вставить исключение? и в какой строке кода происходит исключение?

Ответы на вопрос(2)

Я бы предположил, что они могут не работать:

DateTime StartDate = (StartYear + StartMonth + StartDay);
DateTime EndDate   = (EndYear + EndMonth + EndDay);

private string StartYear;
private string StartMonth;
private DateTime StartDay;

private string EndYear;
private string EndMonth;
private DateTime EndDay;

Единственно возможное «дополнение» что вы можете сделать (если вы не перегружаете оператора) с датой и временем. http://msdn.microsoft.com/en-us/library/system.datetime.op_addition(v=vs.90).aspx

Год и месяц - это строки, а последний - объект datetime. Вам нужно привести их к int и создать новое datetime из этого. Что-то вроде этого:

DateTime StartDate = new DateTime(Int32.parse(StartYear), Int32.parse(StartMonth), StartDay.Day);

Вы определилиStartYear как частное строковое поле, то же самое с StartMonth. В C # вы не можете делать следующее:

DateTime StartDate = (StartYear + StartMonth + StartDay)

StartDay имеет тип DateTime, я не уверен, что именно вы хотите сделать, похоже, вы пытаетесь построить Date из StartYear, StartMonth и StardDay.

Если вы можете преобразовать StartDate, StartMonth и StartDay в целое число, то вы можете использовать конструктор DateTime,DateTime (год, месяц, день); что-то вроде следующего;

    int StartYear = 2012;
    int StartMonth = 06;
    int StartDay = 15;

    DateTime dt = new DateTime(StartYear, StartMonth, StartDay);

Ваш ответ на вопрос