85 lines
5.4 KiB
C#
85 lines
5.4 KiB
C#
using System.Globalization;
|
||
using System.Text.RegularExpressions;
|
||
|
||
namespace Shared.Engine.JacRed
|
||
{
|
||
public static class tParse
|
||
{
|
||
#region BytesToString
|
||
public static string BytesToString(long byteCount)
|
||
{
|
||
string[] suf = { "Byt", "KB", "MB", "GB", "TB", "PB", "EB" };
|
||
if (byteCount == 0)
|
||
return "0 " + suf[0];
|
||
long bytes = Math.Abs(byteCount);
|
||
int place = Convert.ToInt32(Math.Floor(Math.Log(bytes, 1024)));
|
||
double num = Math.Round(bytes / Math.Pow(1024, place), 1);
|
||
return (Math.Sign(byteCount) * num).ToString().Replace(",", ".") + " " + suf[place];
|
||
}
|
||
#endregion
|
||
|
||
#region ParseCreateTime
|
||
public static DateTime ParseCreateTime(string line, string format)
|
||
{
|
||
line = Regex.Replace(line, " янв\\.? ", ".01.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " февр?\\.? ", ".02.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " март?\\.? ", ".03.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " апр\\.? ", ".04.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " май\\.? ", ".05.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " июнь?\\.? ", ".06.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " июль?\\.? ", ".07.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " авг\\.? ", ".08.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " сент?\\.? ", ".09.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " окт\\.? ", ".10.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " нояб?\\.? ", ".11.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " дек\\.? ", ".12.", RegexOptions.IgnoreCase);
|
||
|
||
line = Regex.Replace(line, " янв(аря?)? ", ".01.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " фев(раля?)? ", ".02.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " марта? ", ".03.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " апр(еля?)? ", ".04.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " ма(й|я)? ", ".05.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " июн(ь|я)? ", ".06.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " июл(ь|я)? ", ".07.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " авг(устa?)? ", ".08.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " сент(ябр(я|ь)?)? ", ".09.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " окт(ябр(я|ь)?)? ", ".10.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " ноя(бр(я|ь)?)? ", ".11.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " дек(абр(я|ь)?)? ", ".12.", RegexOptions.IgnoreCase);
|
||
|
||
line = Regex.Replace(line, " январ(ь|я)?\\.? ", ".01.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " феврал(ь|я)?\\.? ", ".02.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " марта?\\.? ", ".03.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " апрел(ь|я)?\\.? ", ".04.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " май?я?\\.? ", ".05.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " июн(ь|я)?\\.? ", ".06.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " июл(ь|я)?\\.? ", ".07.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " августа?\\.? ", ".08.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " сентябр(ь|я)?\\.? ", ".09.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " октябр(ь|я)?\\.? ", ".10.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " ноябр(ь|я)?\\.? ", ".11.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " декабр(ь|я)?\\.? ", ".12.", RegexOptions.IgnoreCase);
|
||
|
||
line = Regex.Replace(line, " Jan ", ".01.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Feb ", ".02.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Mar ", ".03.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Apr ", ".04.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " May ", ".05.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Jun ", ".06.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Jul ", ".07.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Aug ", ".08.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Sep ", ".09.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Oct ", ".10.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Nov ", ".11.", RegexOptions.IgnoreCase);
|
||
line = Regex.Replace(line, " Dec ", ".12.", RegexOptions.IgnoreCase);
|
||
|
||
if (Regex.IsMatch(line, "^[0-9]\\."))
|
||
line = $"0{line}";
|
||
|
||
DateTime.TryParseExact(line.ToLower(), format, new CultureInfo("ru-RU"), DateTimeStyles.None, out DateTime createTime);
|
||
return createTime;
|
||
}
|
||
#endregion
|
||
}
|
||
}
|