Approximate Years Fix

This commit is contained in:
2023-02-05 13:17:05 -07:00
parent 52a5a81d98
commit e22f47c9cd
8 changed files with 46 additions and 5 deletions

View File

@ -5,6 +5,7 @@ public interface IPropertyConfiguration
public string DateGroup { init; get; }
public string[] IgnoreExtensions { init; get; }
public string PersonBirthdayFormat { init; get; }
public bool PropertiesChangedForProperty { init; get; }
public string[] PropertyContentCollectionFiles { init; get; }
public string ResultAllInOne { init; get; }

View File

@ -100,7 +100,7 @@ public interface IPersonBirthday
bool TestStatic_DoesBirthDateExits(Properties.IStorage storage, string personBirthdayFormat, Models.PersonBirthday personBirthday) =>
DoesBirthDateExits(storage, personBirthdayFormat, personBirthday);
internal static bool DoesBirthDateExits(Properties.IStorage storage, string personBirthdayFormat, Models.PersonBirthday personBirthday) =>
static bool DoesBirthDateExits(Properties.IStorage storage, string personBirthdayFormat, Models.PersonBirthday personBirthday) =>
File.Exists(GetFileFullName(storage, personBirthdayFormat, personBirthday));
DateTime? TestStatic_GetDateTime(string personBirthdayFormat, string personKeyFormatted) =>
@ -108,4 +108,9 @@ public interface IPersonBirthday
static DateTime? GetDateTime(string personBirthdayFormat, string personKeyFormatted) =>
DateTime.TryParseExact(GetDateTime(personKeyFormatted), personBirthdayFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dateTime) ? dateTime : null;
List<(string, Models.PersonBirthday)> TestStatic_GetPersonBirthdays(string personBirthdayFormat, string[] personKeyDirectories, string personDisplayDirectory, string personDisplayDirectoryName) =>
GetPersonBirthdays(personBirthdayFormat, personKeyDirectories, personDisplayDirectory, personDisplayDirectoryName);
static List<(string, Models.PersonBirthday)> GetPersonBirthdays(string personBirthdayFormat, string[] personKeyDirectories, string personDisplayDirectory, string personDisplayDirectoryName) =>
PersonBirthday.GetPersonBirthdays(personBirthdayFormat, personKeyDirectories, personDisplayDirectory, personDisplayDirectoryName);
}

View File

@ -15,4 +15,9 @@ public interface IPersonContainer
static List<(long?, string)> GetDisplay(string personBirthdayFormat, Models.PersonContainer personContainer) =>
PersonContainer.GetDisplay(personBirthdayFormat, personContainer);
string? TestStatic_VerifyAge(char numberSign, string personDisplayDirectory, string? minusOne, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection) =>
VerifyAge(numberSign, personDisplayDirectory, minusOne, personDisplayDirectoryName, approximateYears, collection);
static string? VerifyAge(char numberSign, string personDisplayDirectory, string? minusOne, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection) =>
PersonContainer.VerifyAge(numberSign, personDisplayDirectory, minusOne, personDisplayDirectoryName, approximateYears, collection);
}

View File

@ -70,7 +70,7 @@ internal abstract class PersonContainer
return result;
}
private static string? VerifyAge(char numberSign, string personDisplayDirectory, string minusOne, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection)
internal static string? VerifyAge(char numberSign, string personDisplayDirectory, string? minusOne, string personDisplayDirectoryName, int? approximateYears, List<(string PersonKeyFormatted, Models.PersonBirthday PersonBirthday)> collection)
{
string? result;
if (approximateYears is null)
@ -82,13 +82,13 @@ internal abstract class PersonContainer
DateTime dateTime = DateTime.Now;
Models.PersonBirthday[] orderedPersonBirthdays = (from l in collection where !l.PersonKeyFormatted.Contains(numberSign) orderby l.PersonBirthday.Value.Ticks descending select l.PersonBirthday).ToArray();
TimeSpan timeSpan = new(orderedPersonBirthdays[zero].Value.Ticks - dateTime.AddYears(-approximateYears.Value).Ticks);
if (timeSpan.TotalDays < -356)
if (timeSpan.TotalDays < -366)
updateApproximateYears = approximateYears.Value + 1;
else if (timeSpan.TotalDays > 356)
else if (timeSpan.TotalDays > 1)
updateApproximateYears = approximateYears.Value - 1;
else
updateApproximateYears = null;
if (updateApproximateYears is null)
if (minusOne is null || updateApproximateYears is null)
result = null;
else
{