Commit dbb83bbe by Sebastián Katzer

Fix TODO: end of day, month, ...

parent 61e8c70b
...@@ -81,50 +81,31 @@ namespace LocalNotificationProxy.LocalNotification ...@@ -81,50 +81,31 @@ namespace LocalNotificationProxy.LocalNotification
/// Gets the interval as a string representation. /// Gets the interval as a string representation.
/// </summary> /// </summary>
/// <returns>year, month, ...</returns> /// <returns>year, month, ...</returns>
internal string Interval internal string Interval { get => Intervals[Array.IndexOf(this.ToArray(), 0) + 1]; }
{
get
{
var pos = Array.IndexOf(this.ToArray(), 0);
return Intervals[pos + 1];
}
}
/// <summary>
/// Gets an array of all date parts to construct a datetime instance.
/// </summary>
/// <returns>[min, hour, day, month, year]</returns>
internal int[] ToArray()
{
return new int[] { this.Minute, this.Hour, this.Day, this.Month, this.Year };
}
/// <summary> /// <summary>
/// Gets an array of all date parts to construct a datetime instance. /// Converts the date time components into a datetime object.
/// </summary> /// </summary>
/// <returns>[min, hour, day, month, year]</returns> /// <returns>A datetime object</returns>
internal int[] ToArray2() internal DateTime ToDateTime()
{ {
var p = this.ToArray();
var today = DateTime.Today; var today = DateTime.Today;
var ary = this.ToArray();
ary[2] = this.Day > 0 ? this.Day : today.Day; p[2] = this.Day > 0 ? this.Day : today.Day;
ary[3] = this.Month > 0 ? this.Month : today.Month; p[3] = this.Month > 0 ? this.Month : today.Month;
ary[4] = this.Year > 0 ? this.Year : today.Year; p[4] = this.Year > 0 ? this.Year : today.Year;
return ary; return new DateTime(p[4], p[3], p[2], p[1], p[0], 0);
} }
/// <summary> /// <summary>
/// Converts the date time components into a datetime object. /// Gets an array of all date parts to construct a datetime instance.
/// </summary> /// </summary>
/// <returns>A datetime object</returns> /// <returns>[min, hour, day, month, year]</returns>
internal DateTime ToDateTime() private int[] ToArray()
{ {
var p = this.ToArray2(); return new int[] { this.Minute, this.Hour, this.Day, this.Month, this.Year };
return new DateTime(p[4], p[3], p[2], p[1], p[0], 0);
} }
} }
} }
...@@ -214,7 +214,6 @@ namespace LocalNotificationProxy.LocalNotification ...@@ -214,7 +214,6 @@ namespace LocalNotificationProxy.LocalNotification
private DateTime GetRelDate() private DateTime GetRelDate()
{ {
var every = this.Every as Every; var every = this.Every as Every;
var p = every.ToArray2();
var date = every.ToDateTime(); var date = every.ToDateTime();
var now = DateTime.Now; var now = DateTime.Now;
...@@ -232,13 +231,12 @@ namespace LocalNotificationProxy.LocalNotification ...@@ -232,13 +231,12 @@ namespace LocalNotificationProxy.LocalNotification
case "day": case "day":
if (every.YearIsVariable) if (every.YearIsVariable)
{ {
p[4] = now.Year + 1; return date.AddYears(now.Year - date.Year + 1);
} }
break; break;
case "year": case "year":
p[4] = now.Year + 1; return date.AddYears(now.Year - date.Year + 1);
break;
} }
} }
else if (date.Day < now.Day) else if (date.Day < now.Day)
...@@ -249,22 +247,18 @@ namespace LocalNotificationProxy.LocalNotification ...@@ -249,22 +247,18 @@ namespace LocalNotificationProxy.LocalNotification
case "hour": case "hour":
if (every.MonthIsVariable) if (every.MonthIsVariable)
{ {
// TODO: end of year return date.AddMonths(now.Month - date.Month + 1);
p[3] = now.Month + 1;
} }
else if (every.YearIsVariable) else if (every.YearIsVariable)
{ {
p[4] = now.Year + 1; return date.AddYears(now.Year - date.Year + 1);
} }
break; break;
case "month": case "month":
// TODO: end of year return date.AddMonths(now.Month - date.Month + 1);
p[3] = now.Month + 1;
break;
case "year": case "year":
p[4] = now.Year + 1; return date.AddYears(now.Year - date.Year + 1);
break;
} }
} }
else if (date.Hour < now.Hour) else if (date.Hour < now.Hour)
...@@ -274,31 +268,22 @@ namespace LocalNotificationProxy.LocalNotification ...@@ -274,31 +268,22 @@ namespace LocalNotificationProxy.LocalNotification
case "minute": case "minute":
if (every.DayIsVariable) if (every.DayIsVariable)
{ {
// TODO: end of month return date.AddDays(now.Day - date.Day + 1);
p[2] = now.Day + 1;
} }
else if (every.MonthIsVariable) else if (every.MonthIsVariable)
{ {
// TODO: end of year return date.AddMonths(now.Month - date.Month + 1);
p[3] = now.Month + 1;
} }
break; break;
case "hour": case "hour":
// TODO: end of day return date.AddHours(now.Hour - date.Hour);
p[1] = now.Hour;
break;
case "day": case "day":
// TODO: end of month return date.AddDays(now.Day - date.Day + 1);
p[2] = now.Day + 1;
break;
case "month": case "month":
// TODO: end of year return date.AddMonths(now.Month - date.Month + 1);
p[3] = now.Month + 1;
break;
case "year": case "year":
p[4] = now.Year + 1; return date.AddYears(now.Year - date.Year + 1);
break;
} }
} }
else if (date.Minute < now.Minute) else if (date.Minute < now.Minute)
...@@ -306,29 +291,18 @@ namespace LocalNotificationProxy.LocalNotification ...@@ -306,29 +291,18 @@ namespace LocalNotificationProxy.LocalNotification
switch (every.Interval) switch (every.Interval)
{ {
case "minute": case "minute":
// TODO: end of hour return date.AddMinutes(now.Minute - date.Minute + 1);
p[0] = now.Minute + 1;
break;
case "hour": case "hour":
// TODO: end of day return date.AddHours(now.Hour - date.Hour + 1);
p[1] = now.Hour + 1;
break;
case "day": case "day":
// TODO: end of month return date.AddDays(now.Day - date.Day + 1);
p[2] = now.Day + 1;
break;
case "month": case "month":
// TODO: end of year return date.AddMonths(now.Month - date.Month + 1);
p[3] = now.Month + 1;
break;
case "year": case "year":
p[4] = now.Year + 1; return date.AddYears(now.Year - date.Year + 1);
break;
} }
} }
date = new DateTime(p[4], p[3], p[2], p[1], p[0], 0);
return date; return date;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment