データベースのvarchar
列にユーザーの勤務時間を保存したいのですが、デフォルトでは、時間数が24を超える場合、フォーマットされた値には日数が含まれます。合計時間数が必要です。
たとえば、ユーザーが今日10:00:00時間、明日13:00:00時間、明後日3:30:00に勤務している場合、必要なフォーマットされた合計は26:30:00です。代わりに、1.2:30:00が表示されます。
必要なフォーマットを取得するにはどうすればよいですか?
また、値40:00:00をデータベースに手動で保存し、後でそれをTimeSpan
に読み取ろうとすると、バグが発生します。
どうすればデータベースの時間を希望どおりに保存し、後でTimeSpan
に読み戻すことができますか?
試してください TimeSpan.TotalHours
String timeStamp = "40:00:00";
var segments = timeStamp.Split(':');
TimeSpan t = new TimeSpan(0, Convert.ToInt32(segments[0]),
Convert.ToInt32(segments[1]), Convert.ToInt32(segments[2]));
string time = string.Format("{0}:{1}:{2}",
((int) t.TotalHours), t.Minutes, t.Seconds);
あなたは次のようなことをすることができます:
TimeSpan time = ...;
string timeForDisplay = (int)time.TotalHours + time.ToString(@"\:mm\:ss");