Easy.Tools.DateTimeHelper
1.0.9
dotnet add package Easy.Tools.DateTimeHelper --version 1.0.9
NuGet\Install-Package Easy.Tools.DateTimeHelper -Version 1.0.9
<PackageReference Include="Easy.Tools.DateTimeHelper" Version="1.0.9" />
<PackageVersion Include="Easy.Tools.DateTimeHelper" Version="1.0.9" />
<PackageReference Include="Easy.Tools.DateTimeHelper" />
paket add Easy.Tools.DateTimeHelper --version 1.0.9
#r "nuget: Easy.Tools.DateTimeHelper, 1.0.9"
#:package Easy.Tools.DateTimeHelper@1.0.9
#addin nuget:?package=Easy.Tools.DateTimeHelper&version=1.0.9
#tool nuget:?package=Easy.Tools.DateTimeHelper&version=1.0.9
Easy.Tools.DateTimeHelper
Easy.Tools.DateTimeHelper is a lightweight, high-performance .NET library that extends the DateTime struct. It simplifies complex date operations such as age calculation, business day arithmetic, Unix timestamp conversion, and ISO 8601 week calculations.
Features
- Advanced Age Calculation: Get age in years or detailed (Years, Months, Days).
- Business Days: Add/Subtract workdays (automatically skips weekends).
- Time Travel: Easily get Start/End of Day, Week, or Month.
- ISO 8601 Support: Correctly calculates
WeeksInYear(52 or 53 weeks). - Unix Integration: Convert to/from Unix Timestamps (Seconds).
- Time Zones: Convert dates between specific Time Zones easily.
- Fluent API: Check for
IsWeekend,IsLeapYear,IsBetween, etc.
Installation
Install via NuGet Package Manager:
Install-Package Easy.Tools.DateTimeHelper
Or via .NET CLI:
dotnet add package Easy.Tools.DateTimeHelper
Usage Example
1. Age Calculation
Calculates age correctly, accounting for leap years.
using Easy.Tools.DateTimeHelper.Extensions;
var birthDate = new DateTime(1990, 5, 20);
// Simple Age
int age = birthDate.CalculateAge(); // Output: 34
// Detailed Age
var (years, months, days) = birthDate.CalculateAgeDetailed();
Console.WriteLine($"You are {years} years, {months} months, and {days} days old.");
2. Business Days (Workdays)
Skip weekends when adding days.
var friday = new DateTime(2023, 10, 6); // Friday
// Add 3 business days (Skips Sat/Sun) -> Target is Wednesday
var nextWednesday = friday.AddBusinessDays(3);
3. Start & End of Periods
Useful for reporting and database queries.
var now = DateTime.Now;
var startOfDay = now.StartOfDay(); // 2023-10-06 00:00:00
var endOfDay = now.EndOfDay(); // 2023-10-06 23:59:59.999
var startOfWeek = now.StartOfWeek(); // Monday of the current week
var endOfWeek = now.EndOfWeek(); // Sunday of the current week
var startOfMonth = now.StartOfMonth(); // 1st day of month
var endOfMonth = now.EndOfMonth(); // Last day of month
4. Unix & Time Zones
// Unix Timestamp
long timestamp = DateTime.UtcNow.ToUnixTimestamp();
DateTime myDate = DateTimeExtensions.FromUnixTimestamp(timestamp);
// Time Zone Conversion
var utcDate = DateTime.UtcNow;
var estDate = utcDate.ConvertToTimeZone("Eastern Standard Time");
5. ISO 8601 Weeks
Correctly handles years that have 53 weeks.
var date = new DateTime(2020, 12, 31);
int weeksInYear = date.WeeksInYear(); // Returns 53 for ISO 8601 compliance
6. Helper Predicates
Correctly handles years that have 53 weeks.
if (DateTime.Now.IsWeekend())
{
Console.WriteLine("It's party time! ");
}
if (myDate.IsBetween(startDate, endDate))
{
// Do something...
}
var nextFriday = DateTime.Now.NextWeekday(DayOfWeek.Friday);
Contributing
Contributions and suggestions are welcome. Please open an issue or submit a pull request.
License
This project is licensed under the MIT License.
� 2025 Elmin Alirzayev / Easy Code Tools
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net10.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
-