現在時刻までのチェックタイムを計算して時間を取得したい。
たとえば、文字列「時間」があります...
string t1 = UserParam[12].ToString(); // "9/26"
string t2 = UserParam[13].ToString(); // "14:51\r"
ライセンス サーバーからユーザーの時間を取得するプロジェクトでそれらが必要であり、現在までの違いを示したいと考えています。これを数時間で表示したい。
所要時間 ---> 1 時間 49 分
t1は月と日、t2は時と分だと思います。
使用できますDateTime.ParseExact:
string t1 = "9/26";
string t2 = "14:51";
DateTime dt = DateTime.ParseExact(string.Format("{0} {1}", t1, t2), "M/dd HH:mm", CultureInfo.InvariantCulture);
TimeSpan diff = DateTime.Now - dt;
double totalHours = diff.TotalHours; // 0.726172292194444
編集:
エラーが表示されます --> 正しい形式ではありません
のように、文字列の末尾に不要な文字があるためかもしれません"14:51\r"。それらを使用しTrimたりTrimEnd、削除したりできます。例えば:
string t2 = UserParam[13].ToString().TrimEnd(new []{ '\r', '\n' }); // 14:51
DateTime.Subtract日付と時刻の差を計算するために使用できます。
string date = "9/26 14:51";
DateTime dt = DateTime.ParseExact(date, "M/dd HH:mm", CultureInfo.InvariantCulture);
TimeSpan diff = DateTime.Now.Subtract(dt);
あなたはDateTime構造であなたの時間を欲しがるでしょう。文字列にタイムスタンプ情報がある場合は、 を使用DateTime.TryParseしてDateTime. ただし、文字列にタイムスタンプがある場合は、スタイル パラメーター( )でタイム ゾーン情報を指定するDateTimeStylesことが重要です。
次に、 2つのスタクトをTimeSpan減算してmake aを取得し、プロパティを使用できますDateTimeTotalHours
(dt1 - dt2).TotalHours