Light12306/Web12306/Servers/TrainSuggestion/Cn12306SuggestionUtility.cs

54 lines
1.5 KiB
C#
Raw Normal View History

2015-03-13 19:25:08 +08:00
namespace Web12306.Servers.TrainSuggestion
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
public static class Cn12306SuggestionUtility
{
public static double TimeRangeLimitRadio = double.Parse(System.Configuration.ConfigurationManager.AppSettings["12306_trainsuggestion_maxradio"]);
public static readonly char[] BaseSeatCodes = "O219PM6430".ToArray();
public static TimeSpan GetTimeSpace(TimeSpan t1, TimeSpan t2)
{
var t = t2 - t1;
if (t.Ticks < 0)
t = t.Add(new TimeSpan(1, 0, 0, 0));
return t;
}
public static int GetStopTime(string stopTimeStr)
{
var m = Regex.Match(stopTimeStr, @"(\d+)<29><><EFBFBD><EFBFBD>");
return m.Success ? int.Parse(m.Groups[1].Value) : 0;
}
public static TimeSpan GetStopTimeSpan(string stopTimeStr)
{
var m = Regex.Match(stopTimeStr, @"(\d+)<29><><EFBFBD><EFBFBD>");
return m.Success ? new TimeSpan(0, int.Parse(m.Groups[1].Value), 0) : TimeSpan.Zero;
}
public static int GetTimeValue(string time)
{
var m = Regex.Match(time, @"0?(\d+):0?(\d+)");
return m.Success ? int.Parse(m.Groups[1].Value) * 60 + int.Parse(m.Groups[2].Value) : 0;
}
public static TimeSpan GetTimeValueSpan(string time)
{
var m = Regex.Match(time, @"0?(\d+):0?(\d+)");
return m.Success ? new TimeSpan(int.Parse(m.Groups[1].Value), int.Parse(m.Groups[2].Value), 0) : TimeSpan.Zero;
}
public static int GetTimeSpace(string time1, string time2)
{
var x1 = GetTimeValue(time1);
var x2 = GetTimeValue(time2);
return x1 <= x2 ? x2 - x1 : x2 + 24 * 60 - x1;
}
}
}