diff --git a/Olive.ApiClient/Olive.ApiClient.csproj b/Olive.ApiClient/Olive.ApiClient.csproj index cd98aa77..1a166b43 100644 --- a/Olive.ApiClient/Olive.ApiClient.csproj +++ b/Olive.ApiClient/Olive.ApiClient.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.2.111 + 2.2.112 diff --git a/Olive.Audit.DatabaseLogger/Olive.Audit.DatabaseLogger.csproj b/Olive.Audit.DatabaseLogger/Olive.Audit.DatabaseLogger.csproj index e47ca550..2baf326b 100644 --- a/Olive.Audit.DatabaseLogger/Olive.Audit.DatabaseLogger.csproj +++ b/Olive.Audit.DatabaseLogger/Olive.Audit.DatabaseLogger.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.111 + 2.1.112 diff --git a/Olive.Audit/Olive.Audit.csproj b/Olive.Audit/Olive.Audit.csproj index 1068306a..f58d64ab 100644 --- a/Olive.Audit/Olive.Audit.csproj +++ b/Olive.Audit/Olive.Audit.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.120 + 2.1.121 diff --git a/Olive.Azure.EventBus/Olive.Azure.EventBus.csproj b/Olive.Azure.EventBus/Olive.Azure.EventBus.csproj index 673a70cc..e30899bf 100644 --- a/Olive.Azure.EventBus/Olive.Azure.EventBus.csproj +++ b/Olive.Azure.EventBus/Olive.Azure.EventBus.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.8 + 1.0.9 diff --git a/Olive.Azure/Olive.Azure.csproj b/Olive.Azure/Olive.Azure.csproj index 17208e16..5f1dbd5b 100644 --- a/Olive.Azure/Olive.Azure.csproj +++ b/Olive.Azure/Olive.Azure.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.10 + 1.0.11 diff --git a/Olive.AzureSearch/Olive.AzureSearch.csproj b/Olive.AzureSearch/Olive.AzureSearch.csproj index 7d6fc27f..c8636ac8 100644 --- a/Olive.AzureSearch/Olive.AzureSearch.csproj +++ b/Olive.AzureSearch/Olive.AzureSearch.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.2 + 1.0.3 diff --git a/Olive.CSV/Olive.Csv.csproj b/Olive.CSV/Olive.Csv.csproj index 3c984bbd..abcdcc2a 100644 --- a/Olive.CSV/Olive.Csv.csproj +++ b/Olive.CSV/Olive.Csv.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.114 + 2.1.115 diff --git a/Olive.Cloud/Olive.Cloud.csproj b/Olive.Cloud/Olive.Cloud.csproj index 74e385f4..02cba823 100644 --- a/Olive.Cloud/Olive.Cloud.csproj +++ b/Olive.Cloud/Olive.Cloud.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.7 + 1.0.8 diff --git a/Olive.Compression/Olive.Compression.csproj b/Olive.Compression/Olive.Compression.csproj index 69a853a6..7018701b 100644 --- a/Olive.Compression/Olive.Compression.csproj +++ b/Olive.Compression/Olive.Compression.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.112 + 2.1.113 diff --git a/Olive.Console/Olive.Console.csproj b/Olive.Console/Olive.Console.csproj index 8d8b4f58..563289ac 100644 --- a/Olive.Console/Olive.Console.csproj +++ b/Olive.Console/Olive.Console.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.118 + 2.1.119 diff --git a/Olive.Drawing/Olive.Drawing.csproj b/Olive.Drawing/Olive.Drawing.csproj index 93529aff..21d2938c 100644 --- a/Olive.Drawing/Olive.Drawing.csproj +++ b/Olive.Drawing/Olive.Drawing.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.112 + 2.1.113 true diff --git a/Olive.Encryption/Olive.Encryption.csproj b/Olive.Encryption/Olive.Encryption.csproj index 49de451f..1d24c3d8 100644 --- a/Olive.Encryption/Olive.Encryption.csproj +++ b/Olive.Encryption/Olive.Encryption.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.2.112 + 2.2.113 diff --git a/Olive.Entities.Cache.Redis/Olive.Entities.Cache.Redis.csproj b/Olive.Entities.Cache.Redis/Olive.Entities.Cache.Redis.csproj index e881350a..b6b724f9 100644 --- a/Olive.Entities.Cache.Redis/Olive.Entities.Cache.Redis.csproj +++ b/Olive.Entities.Cache.Redis/Olive.Entities.Cache.Redis.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.107 + 2.1.108 diff --git a/Olive.Entities.Data.DynamoDB/Olive.Entities.Data.DynamoDB.csproj b/Olive.Entities.Data.DynamoDB/Olive.Entities.Data.DynamoDB.csproj index 2ec9dd93..3d391360 100644 --- a/Olive.Entities.Data.DynamoDB/Olive.Entities.Data.DynamoDB.csproj +++ b/Olive.Entities.Data.DynamoDB/Olive.Entities.Data.DynamoDB.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.19 + 1.0.20 diff --git a/Olive.Entities.Data.MySql/Olive.Entities.Data.MySql.csproj b/Olive.Entities.Data.MySql/Olive.Entities.Data.MySql.csproj index 9237bfd5..50983cd7 100644 --- a/Olive.Entities.Data.MySql/Olive.Entities.Data.MySql.csproj +++ b/Olive.Entities.Data.MySql/Olive.Entities.Data.MySql.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.121 + 2.1.122 diff --git a/Olive.Entities.Data.PostgreSQL/Olive.Entities.Data.PostgreSQL.csproj b/Olive.Entities.Data.PostgreSQL/Olive.Entities.Data.PostgreSQL.csproj index cff6da48..ae46f9c5 100644 --- a/Olive.Entities.Data.PostgreSQL/Olive.Entities.Data.PostgreSQL.csproj +++ b/Olive.Entities.Data.PostgreSQL/Olive.Entities.Data.PostgreSQL.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.116 + 2.1.117 diff --git a/Olive.Entities.Data.Replication.Mvc.Extensions/Olive.Entities.Data.Replication.Mvc.Extensions.csproj b/Olive.Entities.Data.Replication.Mvc.Extensions/Olive.Entities.Data.Replication.Mvc.Extensions.csproj index a06ce6d8..57677ccb 100644 --- a/Olive.Entities.Data.Replication.Mvc.Extensions/Olive.Entities.Data.Replication.Mvc.Extensions.csproj +++ b/Olive.Entities.Data.Replication.Mvc.Extensions/Olive.Entities.Data.Replication.Mvc.Extensions.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.187 + 2.1.188 diff --git a/Olive.Entities.Data.Replication.QueueUrlProvider/Olive.Entities.Data.Replication.QueueUrlProvider.csproj b/Olive.Entities.Data.Replication.QueueUrlProvider/Olive.Entities.Data.Replication.QueueUrlProvider.csproj index ffdaf0a5..cc4c66d5 100644 --- a/Olive.Entities.Data.Replication.QueueUrlProvider/Olive.Entities.Data.Replication.QueueUrlProvider.csproj +++ b/Olive.Entities.Data.Replication.QueueUrlProvider/Olive.Entities.Data.Replication.QueueUrlProvider.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.3 + 1.0.4 diff --git a/Olive.Entities.Data.Replication/Olive.Entities.Data.Replication.csproj b/Olive.Entities.Data.Replication/Olive.Entities.Data.Replication.csproj index a92546bb..976fb10b 100644 --- a/Olive.Entities.Data.Replication/Olive.Entities.Data.Replication.csproj +++ b/Olive.Entities.Data.Replication/Olive.Entities.Data.Replication.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.195 + 2.1.196 diff --git a/Olive.Entities.Data.SQLite/Olive.Entities.Data.SQLite.csproj b/Olive.Entities.Data.SQLite/Olive.Entities.Data.SQLite.csproj index 2ddf4df6..87a6905e 100644 --- a/Olive.Entities.Data.SQLite/Olive.Entities.Data.SQLite.csproj +++ b/Olive.Entities.Data.SQLite/Olive.Entities.Data.SQLite.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.116 + 2.1.117 diff --git a/Olive.Entities.Data.SqlServer/Olive.Entities.Data.SqlServer.csproj b/Olive.Entities.Data.SqlServer/Olive.Entities.Data.SqlServer.csproj index 621c95ed..4159b8d2 100644 --- a/Olive.Entities.Data.SqlServer/Olive.Entities.Data.SqlServer.csproj +++ b/Olive.Entities.Data.SqlServer/Olive.Entities.Data.SqlServer.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.121 + 2.1.122 diff --git a/Olive.Entities.Data/Olive.Entities.Data.csproj b/Olive.Entities.Data/Olive.Entities.Data.csproj index 91e36be5..27facd3a 100644 --- a/Olive.Entities.Data/Olive.Entities.Data.csproj +++ b/Olive.Entities.Data/Olive.Entities.Data.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.195 + 2.1.196 diff --git a/Olive.Entities/Olive.Entities.csproj b/Olive.Entities/Olive.Entities.csproj index 84f49540..ebb55100 100644 --- a/Olive.Entities/Olive.Entities.csproj +++ b/Olive.Entities/Olive.Entities.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.187 + 2.1.188 diff --git a/Olive.EventBus/Olive.EventBus.csproj b/Olive.EventBus/Olive.EventBus.csproj index e48210bf..4e8e804d 100644 --- a/Olive.EventBus/Olive.EventBus.csproj +++ b/Olive.EventBus/Olive.EventBus.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.137 + 2.1.138 diff --git a/Olive.Export/Olive.Export.csproj b/Olive.Export/Olive.Export.csproj index 20d8e162..81cb378d 100644 --- a/Olive.Export/Olive.Export.csproj +++ b/Olive.Export/Olive.Export.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.112 + 2.1.113 diff --git a/Olive.GeoLocation/Olive.GeoLocation.csproj b/Olive.GeoLocation/Olive.GeoLocation.csproj index aaed0ad7..5c00761a 100644 --- a/Olive.GeoLocation/Olive.GeoLocation.csproj +++ b/Olive.GeoLocation/Olive.GeoLocation.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.113 + 2.1.114 diff --git a/Olive.Globalization/Olive.Globalization.csproj b/Olive.Globalization/Olive.Globalization.csproj index 97af4d70..f1f178a4 100644 --- a/Olive.Globalization/Olive.Globalization.csproj +++ b/Olive.Globalization/Olive.Globalization.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.113 + 2.1.114 diff --git a/Olive.Gpt/Olive.Gpt.csproj b/Olive.Gpt/Olive.Gpt.csproj index 489c490d..401a72f5 100644 --- a/Olive.Gpt/Olive.Gpt.csproj +++ b/Olive.Gpt/Olive.Gpt.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.101 + 1.0.102 diff --git a/Olive.Log.EventBus/Olive.Log.EventBus.csproj b/Olive.Log.EventBus/Olive.Log.EventBus.csproj index 84836af8..1bd27fc7 100644 --- a/Olive.Log.EventBus/Olive.Log.EventBus.csproj +++ b/Olive.Log.EventBus/Olive.Log.EventBus.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.123 + 2.1.124 diff --git a/Olive.Microservices/Olive.Microservices.csproj b/Olive.Microservices/Olive.Microservices.csproj index 4a53f703..52055d7d 100644 --- a/Olive.Microservices/Olive.Microservices.csproj +++ b/Olive.Microservices/Olive.Microservices.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.112 + 2.1.113 diff --git a/Olive.PDF/Olive.PDF.csproj b/Olive.PDF/Olive.PDF.csproj index 7021a3a2..53474989 100644 --- a/Olive.PDF/Olive.PDF.csproj +++ b/Olive.PDF/Olive.PDF.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.113 + 2.1.114 diff --git a/Olive.PassiveBackgroundTasks/Olive.PassiveBackgroundTasks.csproj b/Olive.PassiveBackgroundTasks/Olive.PassiveBackgroundTasks.csproj index 2eedc83b..b0986063 100644 --- a/Olive.PassiveBackgroundTasks/Olive.PassiveBackgroundTasks.csproj +++ b/Olive.PassiveBackgroundTasks/Olive.PassiveBackgroundTasks.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.35 + 1.0.36 false diff --git a/Olive.PushNotification/Olive.PushNotification.csproj b/Olive.PushNotification/Olive.PushNotification.csproj index 3898900a..7bb7f951 100644 --- a/Olive.PushNotification/Olive.PushNotification.csproj +++ b/Olive.PushNotification/Olive.PushNotification.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.114 + 2.1.115 diff --git a/Olive.RabbitMQ/Olive.RabbitMQ.csproj b/Olive.RabbitMQ/Olive.RabbitMQ.csproj index 50b19d9c..abbb9d0d 100644 --- a/Olive.RabbitMQ/Olive.RabbitMQ.csproj +++ b/Olive.RabbitMQ/Olive.RabbitMQ.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 1.0.0.15 + 1.0.0.16 diff --git a/Olive.SMS/Olive.SMS.csproj b/Olive.SMS/Olive.SMS.csproj index 5dd88827..70fbdab9 100644 --- a/Olive.SMS/Olive.SMS.csproj +++ b/Olive.SMS/Olive.SMS.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.113 + 2.1.114 diff --git a/Olive/-Extensions/DateTime.cs b/Olive/-Extensions/DateTime.cs index b57fbb37..704e60b7 100644 --- a/Olive/-Extensions/DateTime.cs +++ b/Olive/-Extensions/DateTime.cs @@ -27,6 +27,9 @@ public static bool IsEnglishHoliday(this DateTime @this) return (ukHoliday.IsWeekend(@this) || ukHoliday.IsUkHoliday(@this)) ? true : false; } + + + /// /// Gets the first upcoming specified week day. /// @@ -203,7 +206,8 @@ public static DateTime EndOfDay(this DateTime date) /// /// Added the value of this parameter to this date /// determines whether English Bank Holidays are considered - public static DateTime AddWorkingDays(this DateTime @this, int days, bool considerEnglishBankHolidays = true) + /// /// false by default + public static DateTime AddWorkingDays(this DateTime @this, int days, bool considerEnglishBankHolidays = true, bool includestartdate = false) { if (days == 0) return @this; @@ -211,10 +215,40 @@ public static DateTime AddWorkingDays(this DateTime @this, int days, bool consid if (days > 0) for (var day = 0; day < days; day++) - result = result.NextWorkingDay(considerEnglishBankHolidays); + result = result.NextWorkingDay(considerEnglishBankHolidays, includestartdate); else for (var day = 0; day < -days; day++) - result = result.PreviousWorkingDay(considerEnglishBankHolidays); + result = result.PreviousWorkingDay(considerEnglishBankHolidays, includestartdate); + + return result; + } + + + /// + /// + /// + /// to date + /// true by default + /// true by default + /// determines whether English Bank Holidays are considered + /// + public static int WorkingDaysTo(this DateTime @this, DateTime to, bool includestartdate = true, bool includeenddate = true, bool considerEnglishBankHolidays = true) + { + int result = 0; + + var tempdate = @this.Date; + + var _to = to.Date; + + if (!includestartdate) tempdate = tempdate.AddDays(1); + + if (!includeenddate) _to = _to.AddDays(-1); + + while (tempdate <= _to) + { + result++; + tempdate = tempdate.AddDays(1); + } return result; } @@ -277,10 +311,13 @@ public static string ToTimeDifferenceString(this DateTime @this, int precisionPa /// /// Gets the next working day. /// - /// determines whether English Bank Holidays are considered - public static DateTime NextWorkingDay(this DateTime @this, bool considerEnglishHolidays = true) + /// determines whether English Bank Holidays are considered + /// /// false by default + public static DateTime NextWorkingDay(this DateTime @this, bool considerEnglishHolidays = true, bool includestartdate = false) { - var result = @this.AddDays(1); + var result = @this; + + if (includestartdate == false) result = @this.AddDays(1); if (considerEnglishHolidays) while (result.IsEnglishHoliday()) @@ -324,10 +361,12 @@ public static IEnumerable GetDaysInBetween(this DateTime @this, DateTi /// /// Gets the previous working day. /// - /// determines whether English Bank Holidays are considered - public static DateTime PreviousWorkingDay(this DateTime @this, bool considerEnglishHolidays = true) + /// determines whether English Bank Holidays are considered + /// /// false by default + public static DateTime PreviousWorkingDay(this DateTime @this, bool considerEnglishHolidays = true, bool includestartdate = false) { - var result = @this.AddDays(-1); + var result = @this; + if (includestartdate == false) result = @this.AddDays(-1); if (considerEnglishHolidays) while (result.IsEnglishHoliday()) diff --git a/Olive/Olive.csproj b/Olive/Olive.csproj index 35fe7024..4eaf2661 100644 --- a/Olive/Olive.csproj +++ b/Olive/Olive.csproj @@ -1,7 +1,7 @@  netstandard2.0 - 2.1.344 + 2.1.345 Library latest