Вывод Date формата в виду "yyyy" из собственного класса
Для работы с проектом я сделал свой класс Date для того, чтобы было удобнее работать с датами.
Я использую метод:
public override string ToString()
{
return $"{year}-{(int)month:d2}-{day:d2}";
}
Который всегда для меня выводит строку: yyyy-mm-dd но мне нужно также, чтобы я мог получать на вывод yyyy-mm и yyyy, если конечно же это соответствует введенным данным.
Сам класс умеет принимать данные такого формата, прикрепляю три метода, подтверждающие это, если нужна будет доп. информация отредактирую вопрос.
public Date(int year, int month, int day)
{
this.year = year;
this.month = (Month)month;
this.day = day;
}
public Date(int year, int month)
{
this.year = year;
this.month = (Month)month;
}
public Date(int year)
{
this.year = year;
}
В них еще были Exception, убрал чтобы не загромождать вопрос.
Подскажите как это реализовать?
Ответы (1 шт):
Решение моей проблемы, приведенное пользователем "AlAvenger". Остается добавить операторы и класс может работать с любым форматом даты ("yyyy-MM-dd" либо "yyyy-MM" или "yyyy").
class Date
{
private int _year;
private int? _month;
private int? _day;
public int Year { get { return _year; } }
public int Month
{
get
{
if (_month.HasValue == false)
return 1;
return _month.Value;
}
}
public int Day
{
get
{
if (_day.HasValue == false)
return 1;
return _day.Value;
}
}
private DateTime _date;
public DateTime DateTime { get { return _date; } }
public Date(int year, int? month = null, int? day = null)
{
_year = year;
_month = month;
_day = day;
_date = new DateTime(Year, Month, Day);
}
public override string ToString()
{
return _date.ToString();
}
public string ToString(string format)
{
return _date.ToString(format);
}
}