diff --git a/Common/UnitDefinitions/Duration.json b/Common/UnitDefinitions/Duration.json
index e0836fcae6..ffdf7de196 100644
--- a/Common/UnitDefinitions/Duration.json
+++ b/Common/UnitDefinitions/Duration.json
@@ -139,6 +139,21 @@
"Abbreviations": [ "сек", "с" ]
}
]
+ },
+ {
+ "SingularName": "JulianYear",
+ "PluralName": "JulianYears",
+ "BaseUnits": {
+ "T": "JulianYear"
+ },
+ "FromUnitToBaseFunc": "x*365.25*24*3600",
+ "FromBaseToUnitFunc": "x/(365.25*24*3600)",
+ "Localization": [
+ {
+ "Culture": "en-US",
+ "Abbreviations": [ "jyr", "jyear", "jyears" ]
+ }
+ ]
}
]
}
diff --git a/UnitsNet.NanoFramework/GeneratedCode/Quantities/Duration.g.cs b/UnitsNet.NanoFramework/GeneratedCode/Quantities/Duration.g.cs
index f00d76c833..80bf80352a 100644
--- a/UnitsNet.NanoFramework/GeneratedCode/Quantities/Duration.g.cs
+++ b/UnitsNet.NanoFramework/GeneratedCode/Quantities/Duration.g.cs
@@ -87,6 +87,11 @@ public Duration(double value, DurationUnit unit)
///
public double Hours => As(DurationUnit.Hour);
+ ///
+ /// Get Duration in JulianYears.
+ ///
+ public double JulianYears => As(DurationUnit.JulianYear);
+
///
/// Get Duration in Microseconds.
///
@@ -143,6 +148,12 @@ public Duration(double value, DurationUnit unit)
/// If value is NaN or Infinity.
public static Duration FromHours(double hours) => new Duration(hours, DurationUnit.Hour);
+ ///
+ /// Get Duration from JulianYears.
+ ///
+ /// If value is NaN or Infinity.
+ public static Duration FromJulianYears(double julianyears) => new Duration(julianyears, DurationUnit.JulianYear);
+
///
/// Get Duration from Microseconds.
///
@@ -236,6 +247,7 @@ private double GetValueInBaseUnit()
{
case DurationUnit.Day: return _value*24*3600;
case DurationUnit.Hour: return _value*3600;
+ case DurationUnit.JulianYear: return _value*365.25*24*3600;
case DurationUnit.Microsecond: return (_value) * 1e-6d;
case DurationUnit.Millisecond: return (_value) * 1e-3d;
case DurationUnit.Minute: return _value*60;
@@ -260,6 +272,7 @@ private double GetValueAs(DurationUnit unit)
{
case DurationUnit.Day: return baseUnitValue/(24*3600);
case DurationUnit.Hour: return baseUnitValue/3600;
+ case DurationUnit.JulianYear: return baseUnitValue/(365.25*24*3600);
case DurationUnit.Microsecond: return (baseUnitValue) / 1e-6d;
case DurationUnit.Millisecond: return (baseUnitValue) / 1e-3d;
case DurationUnit.Minute: return baseUnitValue/60;
diff --git a/UnitsNet.NanoFramework/GeneratedCode/Units/DurationUnit.g.cs b/UnitsNet.NanoFramework/GeneratedCode/Units/DurationUnit.g.cs
index 63af8ab3f0..f9ae0ea6c4 100644
--- a/UnitsNet.NanoFramework/GeneratedCode/Units/DurationUnit.g.cs
+++ b/UnitsNet.NanoFramework/GeneratedCode/Units/DurationUnit.g.cs
@@ -28,6 +28,7 @@ public enum DurationUnit
Undefined = 0,
Day,
Hour,
+ JulianYear,
Microsecond,
Millisecond,
Minute,
diff --git a/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToDurationExtensionsTest.g.cs b/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToDurationExtensionsTest.g.cs
index 0ee77ad7eb..0081d164c6 100644
--- a/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToDurationExtensionsTest.g.cs
+++ b/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToDurationExtensionsTest.g.cs
@@ -32,6 +32,10 @@ public void NumberToDaysTest() =>
public void NumberToHoursTest() =>
Assert.Equal(Duration.FromHours(2), 2.Hours());
+ [Fact]
+ public void NumberToJulianYearsTest() =>
+ Assert.Equal(Duration.FromJulianYears(2), 2.JulianYears());
+
[Fact]
public void NumberToMicrosecondsTest() =>
Assert.Equal(Duration.FromMicroseconds(2), 2.Microseconds());
diff --git a/UnitsNet.NumberExtensions/GeneratedCode/NumberToDurationExtensions.g.cs b/UnitsNet.NumberExtensions/GeneratedCode/NumberToDurationExtensions.g.cs
index 388253cd7d..a59d8ec5a4 100644
--- a/UnitsNet.NumberExtensions/GeneratedCode/NumberToDurationExtensions.g.cs
+++ b/UnitsNet.NumberExtensions/GeneratedCode/NumberToDurationExtensions.g.cs
@@ -36,6 +36,10 @@ public static Duration Days(this T value) =>
public static Duration Hours(this T value) =>
Duration.FromHours(Convert.ToDouble(value));
+ ///
+ public static Duration JulianYears(this T value) =>
+ Duration.FromJulianYears(Convert.ToDouble(value));
+
///
public static Duration Microseconds(this T value) =>
Duration.FromMicroseconds(Convert.ToDouble(value));
diff --git a/UnitsNet.NumberExtensions/UnitsNet.NumberExtensions.csproj b/UnitsNet.NumberExtensions/UnitsNet.NumberExtensions.csproj
index 1f52482594..421cbdd268 100644
--- a/UnitsNet.NumberExtensions/UnitsNet.NumberExtensions.csproj
+++ b/UnitsNet.NumberExtensions/UnitsNet.NumberExtensions.csproj
@@ -1,4 +1,4 @@
-
+
UnitsNet.NumberExtensions
@@ -22,7 +22,7 @@
latest
enable
UnitsNet
- netstandard2.0;net40
+ netstandard2.0;net40;net47
@@ -43,7 +43,7 @@
-
+
diff --git a/UnitsNet.Serialization.JsonNet/UnitsNet.Serialization.JsonNet.csproj b/UnitsNet.Serialization.JsonNet/UnitsNet.Serialization.JsonNet.csproj
index 9e9c8ac759..8dc1b155a7 100644
--- a/UnitsNet.Serialization.JsonNet/UnitsNet.Serialization.JsonNet.csproj
+++ b/UnitsNet.Serialization.JsonNet/UnitsNet.Serialization.JsonNet.csproj
@@ -1,4 +1,4 @@
-
+
UnitsNet.Serialization.JsonNet
@@ -23,7 +23,7 @@
4.0.0.0
latest
UnitsNet.Serialization.JsonNet
- netstandard2.0;net40
+ netstandard2.0;net40;net47
@@ -54,7 +54,7 @@
-
+
diff --git a/UnitsNet.Tests/CustomCode/DurationTests.cs b/UnitsNet.Tests/CustomCode/DurationTests.cs
index 9c7a6fbe92..e083dab2c7 100644
--- a/UnitsNet.Tests/CustomCode/DurationTests.cs
+++ b/UnitsNet.Tests/CustomCode/DurationTests.cs
@@ -31,6 +31,8 @@ public class DurationTests : DurationTestsBase
protected override double Years365InOneSecond => 3.170979198376458e-8;
+ protected override double JulianYearsInOneSecond => 3.16880878140289e-08;
+
[Fact]
public static void ToTimeSpanShouldThrowExceptionOnValuesLargerThanTimeSpanMax()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/DurationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/DurationTestsBase.g.cs
index 546fe7ca64..35023e74cb 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/DurationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/DurationTestsBase.g.cs
@@ -39,6 +39,7 @@ public abstract partial class DurationTestsBase : QuantityTestsBase
{
protected abstract double DaysInOneSecond { get; }
protected abstract double HoursInOneSecond { get; }
+ protected abstract double JulianYearsInOneSecond { get; }
protected abstract double MicrosecondsInOneSecond { get; }
protected abstract double MillisecondsInOneSecond { get; }
protected abstract double MinutesInOneSecond { get; }
@@ -51,6 +52,7 @@ public abstract partial class DurationTestsBase : QuantityTestsBase
// ReSharper disable VirtualMemberNeverOverriden.Global
protected virtual double DaysTolerance { get { return 1e-5; } }
protected virtual double HoursTolerance { get { return 1e-5; } }
+ protected virtual double JulianYearsTolerance { get { return 1e-5; } }
protected virtual double MicrosecondsTolerance { get { return 1e-5; } }
protected virtual double MillisecondsTolerance { get { return 1e-5; } }
protected virtual double MinutesTolerance { get { return 1e-5; } }
@@ -135,6 +137,7 @@ public void SecondToDurationUnits()
Duration second = Duration.FromSeconds(1);
AssertEx.EqualTolerance(DaysInOneSecond, second.Days, DaysTolerance);
AssertEx.EqualTolerance(HoursInOneSecond, second.Hours, HoursTolerance);
+ AssertEx.EqualTolerance(JulianYearsInOneSecond, second.JulianYears, JulianYearsTolerance);
AssertEx.EqualTolerance(MicrosecondsInOneSecond, second.Microseconds, MicrosecondsTolerance);
AssertEx.EqualTolerance(MillisecondsInOneSecond, second.Milliseconds, MillisecondsTolerance);
AssertEx.EqualTolerance(MinutesInOneSecond, second.Minutes, MinutesTolerance);
@@ -156,37 +159,41 @@ public void From_ValueAndUnit_ReturnsQuantityWithSameValueAndUnit()
AssertEx.EqualTolerance(1, quantity01.Hours, HoursTolerance);
Assert.Equal(DurationUnit.Hour, quantity01.Unit);
- var quantity02 = Duration.From(1, DurationUnit.Microsecond);
- AssertEx.EqualTolerance(1, quantity02.Microseconds, MicrosecondsTolerance);
- Assert.Equal(DurationUnit.Microsecond, quantity02.Unit);
+ var quantity02 = Duration.From(1, DurationUnit.JulianYear);
+ AssertEx.EqualTolerance(1, quantity02.JulianYears, JulianYearsTolerance);
+ Assert.Equal(DurationUnit.JulianYear, quantity02.Unit);
- var quantity03 = Duration.From(1, DurationUnit.Millisecond);
- AssertEx.EqualTolerance(1, quantity03.Milliseconds, MillisecondsTolerance);
- Assert.Equal(DurationUnit.Millisecond, quantity03.Unit);
+ var quantity03 = Duration.From(1, DurationUnit.Microsecond);
+ AssertEx.EqualTolerance(1, quantity03.Microseconds, MicrosecondsTolerance);
+ Assert.Equal(DurationUnit.Microsecond, quantity03.Unit);
- var quantity04 = Duration.From(1, DurationUnit.Minute);
- AssertEx.EqualTolerance(1, quantity04.Minutes, MinutesTolerance);
- Assert.Equal(DurationUnit.Minute, quantity04.Unit);
+ var quantity04 = Duration.From(1, DurationUnit.Millisecond);
+ AssertEx.EqualTolerance(1, quantity04.Milliseconds, MillisecondsTolerance);
+ Assert.Equal(DurationUnit.Millisecond, quantity04.Unit);
- var quantity05 = Duration.From(1, DurationUnit.Month30);
- AssertEx.EqualTolerance(1, quantity05.Months30, Months30Tolerance);
- Assert.Equal(DurationUnit.Month30, quantity05.Unit);
+ var quantity05 = Duration.From(1, DurationUnit.Minute);
+ AssertEx.EqualTolerance(1, quantity05.Minutes, MinutesTolerance);
+ Assert.Equal(DurationUnit.Minute, quantity05.Unit);
- var quantity06 = Duration.From(1, DurationUnit.Nanosecond);
- AssertEx.EqualTolerance(1, quantity06.Nanoseconds, NanosecondsTolerance);
- Assert.Equal(DurationUnit.Nanosecond, quantity06.Unit);
+ var quantity06 = Duration.From(1, DurationUnit.Month30);
+ AssertEx.EqualTolerance(1, quantity06.Months30, Months30Tolerance);
+ Assert.Equal(DurationUnit.Month30, quantity06.Unit);
- var quantity07 = Duration.From(1, DurationUnit.Second);
- AssertEx.EqualTolerance(1, quantity07.Seconds, SecondsTolerance);
- Assert.Equal(DurationUnit.Second, quantity07.Unit);
+ var quantity07 = Duration.From(1, DurationUnit.Nanosecond);
+ AssertEx.EqualTolerance(1, quantity07.Nanoseconds, NanosecondsTolerance);
+ Assert.Equal(DurationUnit.Nanosecond, quantity07.Unit);
- var quantity08 = Duration.From(1, DurationUnit.Week);
- AssertEx.EqualTolerance(1, quantity08.Weeks, WeeksTolerance);
- Assert.Equal(DurationUnit.Week, quantity08.Unit);
+ var quantity08 = Duration.From(1, DurationUnit.Second);
+ AssertEx.EqualTolerance(1, quantity08.Seconds, SecondsTolerance);
+ Assert.Equal(DurationUnit.Second, quantity08.Unit);
- var quantity09 = Duration.From(1, DurationUnit.Year365);
- AssertEx.EqualTolerance(1, quantity09.Years365, Years365Tolerance);
- Assert.Equal(DurationUnit.Year365, quantity09.Unit);
+ var quantity09 = Duration.From(1, DurationUnit.Week);
+ AssertEx.EqualTolerance(1, quantity09.Weeks, WeeksTolerance);
+ Assert.Equal(DurationUnit.Week, quantity09.Unit);
+
+ var quantity10 = Duration.From(1, DurationUnit.Year365);
+ AssertEx.EqualTolerance(1, quantity10.Years365, Years365Tolerance);
+ Assert.Equal(DurationUnit.Year365, quantity10.Unit);
}
@@ -209,6 +216,7 @@ public void As()
var second = Duration.FromSeconds(1);
AssertEx.EqualTolerance(DaysInOneSecond, second.As(DurationUnit.Day), DaysTolerance);
AssertEx.EqualTolerance(HoursInOneSecond, second.As(DurationUnit.Hour), HoursTolerance);
+ AssertEx.EqualTolerance(JulianYearsInOneSecond, second.As(DurationUnit.JulianYear), JulianYearsTolerance);
AssertEx.EqualTolerance(MicrosecondsInOneSecond, second.As(DurationUnit.Microsecond), MicrosecondsTolerance);
AssertEx.EqualTolerance(MillisecondsInOneSecond, second.As(DurationUnit.Millisecond), MillisecondsTolerance);
AssertEx.EqualTolerance(MinutesInOneSecond, second.As(DurationUnit.Minute), MinutesTolerance);
@@ -249,6 +257,10 @@ public void ToUnit()
AssertEx.EqualTolerance(HoursInOneSecond, (double)hourQuantity.Value, HoursTolerance);
Assert.Equal(DurationUnit.Hour, hourQuantity.Unit);
+ var julianyearQuantity = second.ToUnit(DurationUnit.JulianYear);
+ AssertEx.EqualTolerance(JulianYearsInOneSecond, (double)julianyearQuantity.Value, JulianYearsTolerance);
+ Assert.Equal(DurationUnit.JulianYear, julianyearQuantity.Unit);
+
var microsecondQuantity = second.ToUnit(DurationUnit.Microsecond);
AssertEx.EqualTolerance(MicrosecondsInOneSecond, (double)microsecondQuantity.Value, MicrosecondsTolerance);
Assert.Equal(DurationUnit.Microsecond, microsecondQuantity.Unit);
@@ -295,6 +307,7 @@ public void ConversionRoundTrip()
Duration second = Duration.FromSeconds(1);
AssertEx.EqualTolerance(1, Duration.FromDays(second.Days).Seconds, DaysTolerance);
AssertEx.EqualTolerance(1, Duration.FromHours(second.Hours).Seconds, HoursTolerance);
+ AssertEx.EqualTolerance(1, Duration.FromJulianYears(second.JulianYears).Seconds, JulianYearsTolerance);
AssertEx.EqualTolerance(1, Duration.FromMicroseconds(second.Microseconds).Seconds, MicrosecondsTolerance);
AssertEx.EqualTolerance(1, Duration.FromMilliseconds(second.Milliseconds).Seconds, MillisecondsTolerance);
AssertEx.EqualTolerance(1, Duration.FromMinutes(second.Minutes).Seconds, MinutesTolerance);
@@ -463,6 +476,7 @@ public void ToString_ReturnsValueAndUnitAbbreviationInCurrentCulture()
try {
Assert.Equal("1 d", new Duration(1, DurationUnit.Day).ToString());
Assert.Equal("1 h", new Duration(1, DurationUnit.Hour).ToString());
+ Assert.Equal("1 jyr", new Duration(1, DurationUnit.JulianYear).ToString());
Assert.Equal("1 µs", new Duration(1, DurationUnit.Microsecond).ToString());
Assert.Equal("1 ms", new Duration(1, DurationUnit.Millisecond).ToString());
Assert.Equal("1 m", new Duration(1, DurationUnit.Minute).ToString());
@@ -486,6 +500,7 @@ public void ToString_WithSwedishCulture_ReturnsUnitAbbreviationForEnglishCulture
Assert.Equal("1 d", new Duration(1, DurationUnit.Day).ToString(swedishCulture));
Assert.Equal("1 h", new Duration(1, DurationUnit.Hour).ToString(swedishCulture));
+ Assert.Equal("1 jyr", new Duration(1, DurationUnit.JulianYear).ToString(swedishCulture));
Assert.Equal("1 µs", new Duration(1, DurationUnit.Microsecond).ToString(swedishCulture));
Assert.Equal("1 ms", new Duration(1, DurationUnit.Millisecond).ToString(swedishCulture));
Assert.Equal("1 m", new Duration(1, DurationUnit.Minute).ToString(swedishCulture));
diff --git a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/Duration.g.cs b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/Duration.g.cs
index 9a5441a262..111414c734 100644
--- a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/Duration.g.cs
+++ b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/Duration.g.cs
@@ -165,6 +165,11 @@ private Duration(double value, DurationUnit unit)
///
public double Hours => As(DurationUnit.Hour);
+ ///
+ /// Get Duration in JulianYears.
+ ///
+ public double JulianYears => As(DurationUnit.JulianYear);
+
///
/// Get Duration in Microseconds.
///
@@ -256,6 +261,16 @@ public static Duration FromHours(double hours)
return new Duration(value, DurationUnit.Hour);
}
///
+ /// Get Duration from JulianYears.
+ ///
+ /// If value is NaN or Infinity.
+ [Windows.Foundation.Metadata.DefaultOverload]
+ public static Duration FromJulianYears(double julianyears)
+ {
+ double value = (double) julianyears;
+ return new Duration(value, DurationUnit.JulianYear);
+ }
+ ///
/// Get Duration from Microseconds.
///
/// If value is NaN or Infinity.
@@ -628,6 +643,7 @@ private double AsBaseUnit()
{
case DurationUnit.Day: return _value*24*3600;
case DurationUnit.Hour: return _value*3600;
+ case DurationUnit.JulianYear: return _value*365.25*24*3600;
case DurationUnit.Microsecond: return (_value) * 1e-6d;
case DurationUnit.Millisecond: return (_value) * 1e-3d;
case DurationUnit.Minute: return _value*60;
@@ -652,6 +668,7 @@ private double AsBaseNumericType(DurationUnit unit)
{
case DurationUnit.Day: return baseUnitValue/(24*3600);
case DurationUnit.Hour: return baseUnitValue/3600;
+ case DurationUnit.JulianYear: return baseUnitValue/(365.25*24*3600);
case DurationUnit.Microsecond: return (baseUnitValue) / 1e-6d;
case DurationUnit.Millisecond: return (baseUnitValue) / 1e-3d;
case DurationUnit.Minute: return baseUnitValue/60;
diff --git a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitAbbreviationsCache.g.cs b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitAbbreviationsCache.g.cs
index cedd8a0a84..dde9ff522c 100644
--- a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitAbbreviationsCache.g.cs
+++ b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/UnitAbbreviationsCache.g.cs
@@ -246,6 +246,7 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin
("ru-RU", typeof(DurationUnit), (int)DurationUnit.Day, new string[]{"сут", "д"}),
("en-US", typeof(DurationUnit), (int)DurationUnit.Hour, new string[]{"h", "hr", "hrs", "hour", "hours"}),
("ru-RU", typeof(DurationUnit), (int)DurationUnit.Hour, new string[]{"ч", "час"}),
+ ("en-US", typeof(DurationUnit), (int)DurationUnit.JulianYear, new string[]{"jyr", "jyear", "jyears"}),
("en-US", typeof(DurationUnit), (int)DurationUnit.Microsecond, new string[]{"µs", "µsec", "µsecs", "µsecond", "µseconds"}),
("ru-RU", typeof(DurationUnit), (int)DurationUnit.Microsecond, new string[]{"мксек", "мкс"}),
("en-US", typeof(DurationUnit), (int)DurationUnit.Millisecond, new string[]{"ms", "msec", "msecs", "msecond", "mseconds"}),
diff --git a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Units/DurationUnit.g.cs b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Units/DurationUnit.g.cs
index 63af8ab3f0..f9ae0ea6c4 100644
--- a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Units/DurationUnit.g.cs
+++ b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Units/DurationUnit.g.cs
@@ -28,6 +28,7 @@ public enum DurationUnit
Undefined = 0,
Day,
Hour,
+ JulianYear,
Microsecond,
Millisecond,
Minute,
diff --git a/UnitsNet/GeneratedCode/Quantities/Duration.g.cs b/UnitsNet/GeneratedCode/Quantities/Duration.g.cs
index 770ac80d28..6ce341eccb 100644
--- a/UnitsNet/GeneratedCode/Quantities/Duration.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/Duration.g.cs
@@ -58,6 +58,7 @@ static Duration()
new UnitInfo[] {
new UnitInfo(DurationUnit.Day, "Days", new BaseUnits(time: DurationUnit.Day)),
new UnitInfo(DurationUnit.Hour, "Hours", new BaseUnits(time: DurationUnit.Hour)),
+ new UnitInfo(DurationUnit.JulianYear, "JulianYears", new BaseUnits(time: DurationUnit.JulianYear)),
new UnitInfo(DurationUnit.Microsecond, "Microseconds", BaseUnits.Undefined),
new UnitInfo(DurationUnit.Millisecond, "Milliseconds", BaseUnits.Undefined),
new UnitInfo(DurationUnit.Minute, "Minutes", new BaseUnits(time: DurationUnit.Minute)),
@@ -191,6 +192,11 @@ public Duration(double value, UnitSystem unitSystem)
///
public double Hours => As(DurationUnit.Hour);
+ ///
+ /// Get Duration in JulianYears.
+ ///
+ public double JulianYears => As(DurationUnit.JulianYear);
+
///
/// Get Duration in Microseconds.
///
@@ -279,6 +285,15 @@ public static Duration FromHours(QuantityValue hours)
return new Duration(value, DurationUnit.Hour);
}
///
+ /// Get Duration from JulianYears.
+ ///
+ /// If value is NaN or Infinity.
+ public static Duration FromJulianYears(QuantityValue julianyears)
+ {
+ double value = (double) julianyears;
+ return new Duration(value, DurationUnit.JulianYear);
+ }
+ ///
/// Get Duration from Microseconds.
///
/// If value is NaN or Infinity.
@@ -781,6 +796,7 @@ private double GetValueInBaseUnit()
{
case DurationUnit.Day: return _value*24*3600;
case DurationUnit.Hour: return _value*3600;
+ case DurationUnit.JulianYear: return _value*365.25*24*3600;
case DurationUnit.Microsecond: return (_value) * 1e-6d;
case DurationUnit.Millisecond: return (_value) * 1e-3d;
case DurationUnit.Minute: return _value*60;
@@ -816,6 +832,7 @@ private double GetValueAs(DurationUnit unit)
{
case DurationUnit.Day: return baseUnitValue/(24*3600);
case DurationUnit.Hour: return baseUnitValue/3600;
+ case DurationUnit.JulianYear: return baseUnitValue/(365.25*24*3600);
case DurationUnit.Microsecond: return (baseUnitValue) / 1e-6d;
case DurationUnit.Millisecond: return (baseUnitValue) / 1e-3d;
case DurationUnit.Minute: return baseUnitValue/60;
diff --git a/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs b/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs
index a93fe609de..0b76e8daf3 100644
--- a/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs
+++ b/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs
@@ -246,6 +246,7 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin
("ru-RU", typeof(DurationUnit), (int)DurationUnit.Day, new string[]{"сут", "д"}),
("en-US", typeof(DurationUnit), (int)DurationUnit.Hour, new string[]{"h", "hr", "hrs", "hour", "hours"}),
("ru-RU", typeof(DurationUnit), (int)DurationUnit.Hour, new string[]{"ч", "час"}),
+ ("en-US", typeof(DurationUnit), (int)DurationUnit.JulianYear, new string[]{"jyr", "jyear", "jyears"}),
("en-US", typeof(DurationUnit), (int)DurationUnit.Microsecond, new string[]{"µs", "µsec", "µsecs", "µsecond", "µseconds"}),
("ru-RU", typeof(DurationUnit), (int)DurationUnit.Microsecond, new string[]{"мксек", "мкс"}),
("en-US", typeof(DurationUnit), (int)DurationUnit.Millisecond, new string[]{"ms", "msec", "msecs", "msecond", "mseconds"}),
diff --git a/UnitsNet/GeneratedCode/UnitConverter.g.cs b/UnitsNet/GeneratedCode/UnitConverter.g.cs
index 88ecc635d7..ce923e6ffd 100644
--- a/UnitsNet/GeneratedCode/UnitConverter.g.cs
+++ b/UnitsNet/GeneratedCode/UnitConverter.g.cs
@@ -334,6 +334,8 @@ public static void RegisterDefaultConversions(UnitConverter unitConverter)
unitConverter.SetConversionFunction(DurationUnit.Day, Duration.BaseUnit, q => q.ToBaseUnit());
unitConverter.SetConversionFunction(Duration.BaseUnit, DurationUnit.Hour, q => q.ToUnit(DurationUnit.Hour));
unitConverter.SetConversionFunction(DurationUnit.Hour, Duration.BaseUnit, q => q.ToBaseUnit());
+ unitConverter.SetConversionFunction(Duration.BaseUnit, DurationUnit.JulianYear, q => q.ToUnit(DurationUnit.JulianYear));
+ unitConverter.SetConversionFunction(DurationUnit.JulianYear, Duration.BaseUnit, q => q.ToBaseUnit());
unitConverter.SetConversionFunction(Duration.BaseUnit, DurationUnit.Microsecond, q => q.ToUnit(DurationUnit.Microsecond));
unitConverter.SetConversionFunction(DurationUnit.Microsecond, Duration.BaseUnit, q => q.ToBaseUnit());
unitConverter.SetConversionFunction(Duration.BaseUnit, DurationUnit.Millisecond, q => q.ToUnit(DurationUnit.Millisecond));
diff --git a/UnitsNet/GeneratedCode/Units/DurationUnit.g.cs b/UnitsNet/GeneratedCode/Units/DurationUnit.g.cs
index 63af8ab3f0..f9ae0ea6c4 100644
--- a/UnitsNet/GeneratedCode/Units/DurationUnit.g.cs
+++ b/UnitsNet/GeneratedCode/Units/DurationUnit.g.cs
@@ -28,6 +28,7 @@ public enum DurationUnit
Undefined = 0,
Day,
Hour,
+ JulianYear,
Microsecond,
Millisecond,
Minute,
diff --git a/UnitsNet/UnitsNet.csproj b/UnitsNet/UnitsNet.csproj
index 0dce98bfd5..75741aec9c 100644
--- a/UnitsNet/UnitsNet.csproj
+++ b/UnitsNet/UnitsNet.csproj
@@ -1,4 +1,4 @@
-
+
UnitsNet
@@ -64,7 +64,7 @@
-
+