Dreamine.UI.Wpf 1.0.1
Dreamine.UI.Wpf 사용자 인터페이스 기능과 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.UI.Wpf.Converters.TimeSpanHmEditConverter 클래스 참조sealed

더 자세히 ...

Dreamine.UI.Wpf.Converters.TimeSpanHmEditConverter에 대한 상속 다이어그램 :
Dreamine.UI.Wpf.Converters.TimeSpanHmEditConverter에 대한 협력 다이어그램:

Public 멤버 함수

object Convert (object value, Type targetType, object parameter, CultureInfo culture)
object ConvertBack (object value, Type targetType, object parameter, CultureInfo culture)

상세한 설명

TimeSpan과 시간·분 편집 문자열 사이를 양방향 변환합니다.

H:MM, 짧은 시간 숫자, 또는 마지막 두 자리를 분으로 보는 HMM/HHMM 입력을 허용합니다.

TimeSpanHmEditConverter.cs 파일의 23 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ Convert()

object Dreamine.UI.Wpf.Converters.TimeSpanHmEditConverter.Convert ( object value,
Type targetType,
object parameter,
CultureInfo culture )
inline

시간 간격을 총 시간과 두 자리 분으로 구성된 문자열로 변환합니다.

매개변수
value원본 시간 간격입니다.
targetType대상 형식입니다.
parameter사용하지 않는 매개변수입니다.
culture사용하지 않는 문화권입니다.
반환값
H:MM 문자열이며 입력이 시간 간격이 아니면 "0:00"입니다.

TimeSpanHmEditConverter.cs 파일의 73 번째 라인에서 정의되었습니다.

74 {
75 if (value is TimeSpan ts)
76 return $"{(int)ts.TotalHours}:{ts.Minutes:00}";
77 return "0:00";
78 }

◆ ConvertBack()

object Dreamine.UI.Wpf.Converters.TimeSpanHmEditConverter.ConvertBack ( object value,
Type targetType,
object parameter,
CultureInfo culture )
inline

지원되는 시간·분 문자열을 음수가 아닌 시간 간격으로 변환합니다.

매개변수
value해석할 대상 문자열입니다.
targetType원본 형식입니다.
parameter사용하지 않는 매개변수입니다.
culture사용하지 않는 문화권입니다.
반환값
해석된 시간 간격이며 유효하지 않으면 TimeSpan.Zero입니다.
예외
OverflowException해석된 시간 값이 TimeSpan 범위를 벗어나면 발생할 수 있습니다.

TimeSpanHmEditConverter.cs 파일의 136 번째 라인에서 정의되었습니다.

137 {
138 if (value is not string s || string.IsNullOrWhiteSpace(s))
139 return TimeSpan.Zero;
140
141 s = s.Trim();
142
143 // 1) "H:MM" 정식 표기
144 if (s.Contains(':'))
145 {
146 var parts = s.Split(':');
147 if (parts.Length == 2 &&
148 int.TryParse(parts[0], out var h) &&
149 int.TryParse(parts[1], out var m) &&
150 m >= 0 && m < 60)
151 return TimeSpan.FromHours(Math.Max(0, h)) + TimeSpan.FromMinutes(m);
152 return TimeSpan.Zero;
153 }
154
155 // 2) 순수 숫자: H, HMM, HHMM 해석
156 if (int.TryParse(s, out var num))
157 {
158 if (num < 0) num = 0;
159
160 if (s.Length <= 2) // "H" 또는 "HH" → 시간만
161 {
162 return TimeSpan.FromHours(num);
163 }
164 else
165 {
166 // 마지막 두 자리는 분으로 간주
167 var minutes = num % 100;
168 var hours = num / 100;
169 if (minutes >= 60) minutes = minutes % 60; // 비정상 값 보정
170 return TimeSpan.FromHours(hours) + TimeSpan.FromMinutes(minutes);
171 }
172 }
173
174 return TimeSpan.Zero;
175 }

이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: