Ну, вы можете создать свой собственный тип - но у DateTime
всегда есть полная дата и время.Вы не можете даже иметь «просто дату», используя DateTime
- самое близкое, что вы можете прийти, это иметь DateTime
в полночь.
Вы всегда можете игнорировать год, хотя- или взять текущий год:
// Consider whether you want DateTime.UtcNow.Year instead
DateTime value = new DateTime(DateTime.Now.Year, month, day);
Чтобы создать свой собственный тип, вы всегда можете просто встроить DateTime
в структуру и прокси на вызовы типа AddDays
и т. д .:
public struct MonthDay : IEquatable<MonthDay>
{
private readonly DateTime dateTime;
public MonthDay(int month, int day)
{
dateTime = new DateTime(2000, month, day);
}
public MonthDay AddDays(int days)
{
DateTime added = dateTime.AddDays(days);
return new MonthDay(added.Month, added.Day);
}
// TODO: Implement interfaces, equality etc
}
Обратите внимание, что выбранный вами год влияет на поведение типа - должно ли 29 февраля быть допустимым значением месяца / дня или нет?Это зависит от года ...
Лично я не думаю, что я создаст для этого тип - вместо этого у меня будет метод возврата "в следующий раз, когда программа должнабеги ".