Add another file name date parsing format
Also redid code so more formats would be easy
This commit is contained in:
@@ -1,10 +1,12 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using Tmds.DBus.Protocol;
|
||||||
|
|
||||||
namespace MayShows.Helpers;
|
namespace MayShows.Helpers;
|
||||||
|
|
||||||
@@ -23,16 +25,26 @@ class Utilities
|
|||||||
public static DateOnly? CheckValidDateInString(string str)
|
public static DateOnly? CheckValidDateInString(string str)
|
||||||
{
|
{
|
||||||
// https://stackoverflow.com/a/14918404/3938401
|
// https://stackoverflow.com/a/14918404/3938401
|
||||||
var rgx = new Regex(@"\d{4}-\d{2}-\d{2}");
|
// formats = regex format -> DateTime parsing format
|
||||||
var mat = rgx.Match(str);
|
var formats = new Dictionary<string, string>
|
||||||
if (mat.Success)
|
|
||||||
{
|
{
|
||||||
var dtStr = mat.ToString();
|
{@"\d{4}-\d{2}-\d{2}", "yyyy-MM-dd"},
|
||||||
string[] formats = ["yyyy-MM-dd"];
|
{@"\d{8}", "yyyyMMdd"}
|
||||||
DateTime parsedDateTime;
|
};
|
||||||
var didWork = DateTime.TryParseExact(dtStr, formats, CultureInfo.InvariantCulture,
|
foreach (var data in formats)
|
||||||
DateTimeStyles.None, out parsedDateTime);
|
{
|
||||||
return didWork ? DateOnly.FromDateTime(parsedDateTime) : null;
|
var rgx = new Regex(data.Key);
|
||||||
|
var mat = rgx.Match(str);
|
||||||
|
if (mat.Success)
|
||||||
|
{
|
||||||
|
var dtStr = mat.ToString();
|
||||||
|
var didWork = DateTime.TryParseExact(dtStr, [data.Value], CultureInfo.InvariantCulture,
|
||||||
|
DateTimeStyles.None, out var parsedDateTime);
|
||||||
|
if (didWork)
|
||||||
|
{
|
||||||
|
return DateOnly.FromDateTime(parsedDateTime);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user