diff --git a/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml b/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml
index 27881e5..dc7b71b 100644
--- a/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml
+++ b/.idea/.idea.EvoCalculator.Core/.idea/contentModel.xml
@@ -39,6 +39,7 @@
+
@@ -105,6 +106,7 @@
+
diff --git a/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml b/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
index 28d4792..35ff862 100644
--- a/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
+++ b/.idea/.idea.EvoCalculator.Core/.idea/workspace.xml
@@ -14,9 +14,10 @@
+
+
+
-
-
@@ -28,9 +29,11 @@
+
+
@@ -66,11 +69,13 @@
-
+
+
+
@@ -135,7 +140,7 @@
-
+
1602593830686
@@ -183,94 +188,94 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
@@ -287,10 +292,10 @@
-
+
-
+
diff --git a/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs b/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs
new file mode 100644
index 0000000..e67ef78
--- /dev/null
+++ b/EvoCalculator.Core.Calculation/Columns/DateTempColumn.cs
@@ -0,0 +1,33 @@
+using System;
+using EvoCalculator.Core.Models.Calculation.Interfaces;
+using EvoCalculator.Core.Models.Calculation.Models.Prepared;
+
+namespace EvoCalculator.Core.Calculation.Columns
+{
+ public class DateTempColumn : IColumn
+ {
+ public DateTime[] Values { get; set; }
+
+ public DateTempColumn(int count = 67)
+ {
+ Values = new DateTime[count];
+ }
+
+
+ public void ComputeValues(PreparedValues preparedValues, PreparedPayments preparedPayments,
+ Constants.Calculation constants,
+ params IColumn[] columns)
+ {
+ Values[0] = preparedValues.DogDate;
+ Values[1] = Values[0];
+ Values[2] = preparedValues.PaymentDateNew ?? Values[1].AddMonths(1);
+
+ for (var i = 3; i < Values.Length; i++)
+ {
+ Values[i] = preparedValues.PaymentDateNew == null
+ ? Values[1].AddMonths(i - 1)
+ : Values[2].AddMonths(i - 2);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateTempTests.cs b/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateTempTests.cs
new file mode 100644
index 0000000..20d538b
--- /dev/null
+++ b/EvoCalculator.Core.Tests/Calculation/Suite/Columns/DateTempTests.cs
@@ -0,0 +1,194 @@
+using System;
+using EvoCalculator.Core.Calculation.Columns;
+using EvoCalculator.Core.Models.Calculation.Models.Prepared;
+using Xunit;
+
+namespace EvoCalculator.Core.Tests.Calculation.Suite.Columns
+{
+ public class DateTempTests
+ {
+ [Fact]
+ public void DateTempTest1()
+ {
+ var preparedValues =
+ new PreparedValues()
+ {
+ DogDate = new DateTime(2018, 10, 31),
+ PaymentDateNew = null,
+ };
+
+ var dateTempColumn = new DateTempColumn();
+ dateTempColumn.ComputeValues(
+ preparedValues
+ , null
+ , new Constants.Calculation()
+ , null);
+
+ var expected = new DateTime[]
+ {
+ new DateTime(2018, 10, 31),
+ new DateTime(2018, 10, 31),
+ new DateTime(2018, 11, 30),
+ new DateTime(2018, 12, 31),
+ new DateTime(2019, 1, 31),
+ new DateTime(2019, 2, 28),
+ new DateTime(2019, 3, 31),
+ new DateTime(2019, 4, 30),
+ new DateTime(2019, 5, 31),
+ new DateTime(2019, 6, 30),
+ new DateTime(2019, 7, 31),
+ new DateTime(2019, 8, 31),
+ new DateTime(2019, 9, 30),
+ new DateTime(2019, 10, 31),
+ new DateTime(2019, 11, 30),
+ new DateTime(2019, 12, 31),
+ new DateTime(2020, 1, 31),
+ new DateTime(2020, 2, 29),
+ new DateTime(2020, 3, 31),
+ new DateTime(2020, 4, 30),
+ new DateTime(2020, 5, 31),
+ new DateTime(2020, 6, 30),
+ new DateTime(2020, 7, 31),
+ new DateTime(2020, 8, 31),
+ new DateTime(2020, 9, 30),
+ new DateTime(2020, 10, 31),
+ new DateTime(2020, 11, 30),
+ new DateTime(2020, 12, 31),
+ new DateTime(2021, 1, 31),
+ new DateTime(2021, 2, 28),
+ new DateTime(2021, 3, 31),
+ new DateTime(2021, 4, 30),
+ new DateTime(2021, 5, 31),
+ new DateTime(2021, 6, 30),
+ new DateTime(2021, 7, 31),
+ new DateTime(2021, 8, 31),
+ new DateTime(2021, 9, 30),
+ new DateTime(2021, 10, 31),
+ new DateTime(2021, 11, 30),
+ new DateTime(2021, 12, 31),
+ new DateTime(2022, 1, 31),
+ new DateTime(2022, 2, 28),
+ new DateTime(2022, 3, 31),
+ new DateTime(2022, 4, 30),
+ new DateTime(2022, 5, 31),
+ new DateTime(2022, 6, 30),
+ new DateTime(2022, 7, 31),
+ new DateTime(2022, 8, 31),
+ new DateTime(2022, 9, 30),
+ new DateTime(2022, 10, 31),
+ new DateTime(2022, 11, 30),
+ new DateTime(2022, 12, 31),
+ new DateTime(2023, 1, 31),
+ new DateTime(2023, 2, 28),
+ new DateTime(2023, 3, 31),
+ new DateTime(2023, 4, 30),
+ new DateTime(2023, 5, 31),
+ new DateTime(2023, 6, 30),
+ new DateTime(2023, 7, 31),
+ new DateTime(2023, 8, 31),
+ new DateTime(2023, 9, 30),
+ new DateTime(2023, 10, 31),
+ new DateTime(2023, 11, 30),
+ new DateTime(2023, 12, 31),
+ new DateTime(2024, 1, 31),
+ new DateTime(2024, 2, 29),
+ new DateTime(2024, 3, 31),
+ };
+
+ var res = dateTempColumn.Values;
+ Assert.Equal(expected, res);
+ }
+
+ [Fact]
+ public void DateTempTest2()
+ {
+ var preparedValues =
+ new PreparedValues()
+ {
+ DogDate = new DateTime(2018, 10, 31),
+ PaymentDateNew = new DateTime(2018, 12, 11),
+ };
+
+ var dateTempColumn = new DateTempColumn();
+ dateTempColumn.ComputeValues(
+ preparedValues
+ , null
+ , new Constants.Calculation()
+ , null);
+
+ var expected = new DateTime[]
+ {
+ new DateTime(2018, 10, 31),
+ new DateTime(2018, 10, 31),
+ new DateTime(2018, 12, 11),
+ new DateTime(2019, 1, 11),
+ new DateTime(2019, 2, 11),
+ new DateTime(2019, 3, 11),
+ new DateTime(2019, 4, 11),
+ new DateTime(2019, 5, 11),
+ new DateTime(2019, 6, 11),
+ new DateTime(2019, 7, 11),
+ new DateTime(2019, 8, 11),
+ new DateTime(2019, 9, 11),
+ new DateTime(2019, 10, 11),
+ new DateTime(2019, 11, 11),
+ new DateTime(2019, 12, 11),
+ new DateTime(2020, 1, 11),
+ new DateTime(2020, 2, 11),
+ new DateTime(2020, 3, 11),
+ new DateTime(2020, 4, 11),
+ new DateTime(2020, 5, 11),
+ new DateTime(2020, 6, 11),
+ new DateTime(2020, 7, 11),
+ new DateTime(2020, 8, 11),
+ new DateTime(2020, 9, 11),
+ new DateTime(2020, 10, 11),
+ new DateTime(2020, 11, 11),
+ new DateTime(2020, 12, 11),
+ new DateTime(2021, 1, 11),
+ new DateTime(2021, 2, 11),
+ new DateTime(2021, 3, 11),
+ new DateTime(2021, 4, 11),
+ new DateTime(2021, 5, 11),
+ new DateTime(2021, 6, 11),
+ new DateTime(2021, 7, 11),
+ new DateTime(2021, 8, 11),
+ new DateTime(2021, 9, 11),
+ new DateTime(2021, 10, 11),
+ new DateTime(2021, 11, 11),
+ new DateTime(2021, 12, 11),
+ new DateTime(2022, 1, 11),
+ new DateTime(2022, 2, 11),
+ new DateTime(2022, 3, 11),
+ new DateTime(2022, 4, 11),
+ new DateTime(2022, 5, 11),
+ new DateTime(2022, 6, 11),
+ new DateTime(2022, 7, 11),
+ new DateTime(2022, 8, 11),
+ new DateTime(2022, 9, 11),
+ new DateTime(2022, 10, 11),
+ new DateTime(2022, 11, 11),
+ new DateTime(2022, 12, 11),
+ new DateTime(2023, 1, 11),
+ new DateTime(2023, 2, 11),
+ new DateTime(2023, 3, 11),
+ new DateTime(2023, 4, 11),
+ new DateTime(2023, 5, 11),
+ new DateTime(2023, 6, 11),
+ new DateTime(2023, 7, 11),
+ new DateTime(2023, 8, 11),
+ new DateTime(2023, 9, 11),
+ new DateTime(2023, 10, 11),
+ new DateTime(2023, 11, 11),
+ new DateTime(2023, 12, 11),
+ new DateTime(2024, 1, 11),
+ new DateTime(2024, 2, 11),
+ new DateTime(2024, 3, 11),
+ new DateTime(2024, 4, 11),
+ };
+
+ var res = dateTempColumn.Values;
+ Assert.Equal(expected, res);
+ }
+ }
+}
\ No newline at end of file