2016-09-02 3 views
0

文字列を解析するにはどうすればよいですか?月/日として表される「01/21 - 02/20」。これをオブジェクト表現に解析して、多くの日付範囲オブジェクトを照会して日付範囲を見つけることができます。日付を日付/時刻型のオブジェクトとして区切ります

クエリの例は01/30で、 "01/21 - 02/20"の日付範囲オブジェクトがその特定の範囲内にあるため返されます。

+0

「日付範囲オブジェクトを返す」とはどういう意味ですか? –

+0

整数に変換できます。 01/21 - > 121、02/20 - > 220、01/30 - > 130の順にチェックしてください。 – Kelvin

答えて

1

入力文字列が "01/21 - 02/20"の場合、正規表現で解析し、正規表現の一致をDateTimeに解析することができます。

.NETには種類が含まれていません。DateTime range object - あなた自身でコード化する必要があります。

あなたの結果オブジェクトがすべきは、チェックの方法を追加するこの

public class DateTimeRangeObject 
{ 
    public DateTime Date1 {get; set;} 
    public DateTime Date2 {get; set;} 

    public static DateTimeRangeObject Parse(string inputStr) 
    { 
     var matches = Regex.Matches(inputStr, "\\d{2}\\/\\d{2}"); 

     return new DateTimeRangeObject 
     { 
      Date1 = DateTime.ParseExact(matches[0].Value, "MM/dd", null), 
      Date2 = DateTime.ParseExact(matches[1].Value, "MM/dd", null) 
     }; 
    } 
} 

のように見える他の2つの値の間に配置されたDateTime値があまりにも難しいことではありませんです。

+0

完全にはわかりませんが、正規表現は100%動作しますか?私はマッチを得ていない。 /私自身の正規表現を生成する方法を知っていますか? – noobatrilla

+0

あなたの文字列があなたの書式であれば、それは動作します。例https://dotnetfiddle.net/RVAmEl –

+0

c#regexに詳しい方は、https://msdn.microsoft.com/en-us/library/az24scfc(v=vs.110).aspxをお読みください。 –