Как насчет методов, которые специально не расширяют строку или DateTime, а скорее target или не возвращают строку или DateTime? Тогда вы могли бы также создать несколько int
и TimeSpan
методов, чтобы вы могли писать беглые интерфейсы, такие как:
DateTime yesterday = 1.Days().Ago();
.
public static TimeSpan Days(this int value)
{
return new TimeSpan(value, 0, 0, 0);
}
public static TimeSpan Hours(this int value)
{
return new TimeSpan(value, 0, 0);
}
public static TimeSpan Minutes(this int value)
{
return new TimeSpan(0, value, 0);
}
//...
.
public static DateTime Ago(this TimeSpan value)
{
return DateTime.Now.Add(value.Negate());
}
public static DateTime FromNow(this TimeSpan value)
{
return DateTime.Now.Add(value);
}