음의 시간 범위 형식 지정
타임스팬과 함께 수학을 하고 있습니다.네트, 그리고 때때로 그 합계는 마이너스 타임스팬을 초래합니다.결과를 표시할 때 음의 표시기를 포함하도록 포맷하는 데 문제가 있습니다.
Dim ts as New Timespan(-10,0,0)
ts.ToString()
그러면 "-10:00:00"이 표시되는데, 이는 좋지만 초를 보여주고 싶지 않아서 시도해 보았습니다.
ts.ToString("hh\:mm")
그러면 "10:00"이 반환되고 문제의 핵심인 "-"가 전면에서 떨어집니다.현재 솔루션은 다음과 같습니다.
If(ts < TimeSpan.Zero, "-", "") & ts.ToString("hh\:mm")
형식 문자열만 사용하여 동일한 작업을 수행할 수 있기를 희망했습니다.
써봤습니다.시간 범위의 Net Reflector입니다.ToString(...) 그리고 그것은 정말로 사용자 지정 형식에서 어떤 형태의 부정적인 접두사도 지원하지 않는 것처럼 보입니다. 그래서 위와 같이 당신에게 그것이 작동하도록 하는 것에 관해서는 당신은 운이 좋지 않다고 생각합니다.
코드에 집착하는 것처럼 보이지만, 그렇다면 지금은 코드를 더 명확하게 만들 수 있고 여러 곳에서 코드를 반복할 필요가 없는 익스텐션 방법을 작성하기에 좋은 시기인 것 같습니다.
Module Extensions
<System.Runtime.CompilerServices.Extension()> _
Public Function HoursAndMinutes(ByVal ts As TimeSpan) As String
Return If(ts < TimeSpan.Zero, "-", "") & ts.ToString("hh\:mm")
End Function
End Module
그런 다음 이렇게 부를 수 있습니다.
ts.HoursAndMinutes()
윌의 의견에 동의합니다 MSDN과 리플렉터는 모두 당신이 운이 없다는 것을 나타냅니다현재 보유한 것을 사용하거나, 직접 IFormatProvider를 작성하거나, "g"와 같은 표준 시간 범위 형식 중 하나를 사용하는 것이 최선입니다.
나는 이 도망 코드를 사용하고 있습니다.
if (timeDiff.TotalSeconds < 0)
{
timeDiff = timeDiff.Negate();
TimeChangeTb.Text = string.Format("-{0:D2}:{1:D2}:{2:D2}",
timeDiff.Hours,
timeDiff.Minutes,
timeDiff.Seconds);
}
else
{
TimeChangeTb.Text = string.Format("{0:D2}:{1:D2}:{2:D2}",
timeDiff.Hours,
timeDiff.Minutes,
timeDiff.Seconds);
}
도움이 되길 바랍니다!
표준 형식 "c"는 음수 기호를 제공하지만 시간 범위의 모든 부분을 포함합니다.
Dim ts As New TimeSpan(-10, 1, 2)
Debug.WriteLine(ts.ToString("c"))
@ho1 답변을 기반으로 확장 방법을 구축했습니다.요즘은 좀 더 사용하기 쉬울 수도 있습니다.
public static class TimeSpanUtil
{
public static string HoursAndMinutes(this TimeSpan ts)
{
return (ts < TimeSpan.Zero ? "-" : "") + ts.ToString("hh:mm");
}
}
다양한 접근 방식을 테스트한 후 다음과 같이 수행했습니다.
Public Module TimeExtensions
<Extension>
Public Function ToHourMinute(ByVal time As TimeSpan) As String
Return $"{If(time < TimeSpan.Zero, "-", "")}{time:hh\:mm}"
End Function
End Module
언급URL : https://stackoverflow.com/questions/3223902/formatting-a-negative-timespan
'source' 카테고리의 다른 글
가장 비싼 쿼리를 기록하고 찾는 방법 (0) | 2023.07.16 |
---|---|
젠킨스에서 파이썬 유닛 테스트? (0) | 2023.07.16 |
Django Rest Framework - 보기 이름 "user-detail"을 사용하여 하이퍼링크된 관계의 URL을 확인할 수 없습니다. (0) | 2023.07.16 |
xml 없이 Ehcache 3 + 스프링 부트 + Java 구성을 구성하려면 어떻게 해야 합니까? (0) | 2023.07.16 |
angular2 테스트를 위해 http 오류를 모의하는 방법 (0) | 2023.07.16 |