-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed as not planned
Labels
api-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationarea-System.DateTime
Description
Background and motivation
For simplifying calculation of datetime and timespan without some fraction or calculate cron repeat I would like to suggest adding % operator for DateTimeOffset and TimeSpan (DateTime too ?)
API Proposal
namespace System;
public class DateTimeOffset
{
public static DateTimeOffset operator %(DateTimeOffset dateTimeOffset, TimeSpan timeSpan)
{
return dateTimeOffset - TimeSpan.FromTicks(dateTimeOffset.Ticks % timeSpan.Ticks);
}
}
public class TimeSpan
{
public static TimeSpan operator %(TimeSpan left, TimeSpan right)
{
return left - TimeSpan.FromTicks(left.Ticks % right.Ticks);
}
}API Usage
Console.WriteLine(DateTimeOffset.Now.TimeOfDay); // 08:53:12.4048276
Console.WriteLine((DateTimeOffset.Now % TimeSpan.FromSeconds(1))).TimeOfDay); // 08:53:12
Console.WriteLine((DateTimeOffset.Now % TimeSpan.FromSeconds(5))).TimeOfDay); // 08:53:10
Console.WriteLine((DateTimeOffset.Now % TimeSpan.FromMinutes(1))).TimeOfDay); // 08:53:00Alternative Designs
var now = DateTimeOffset.Now;
now -= TimeSpan.FromTicks(now.Ticks % TimeSpan.FromSeconds(5).Ticks);Risks
No response
Metadata
Metadata
Assignees
Labels
api-suggestionEarly API idea and discussion, it is NOT ready for implementationEarly API idea and discussion, it is NOT ready for implementationarea-System.DateTime