728x90
반응형
C# Winform 프로그램 개발을 하다 보면,
데이터 포맷 변환해야 할 상황이 생각보다 많이 생깁니다.
사용할 때마다 포맷을 변경하여도 좋지만,
많이 사용해야 할 경우 데이터 포맷 클래스를 생성하여 메서드를 호출하는 형태로 사용할 수 있도록
하는 예제를 보여드리겠습니다.
1. C# 자연수 포맷 (천 단위 구분자(,) 추가) 변환
- 숫자로만 구성된 문자열 사용(음수는 제외)
- 해당 코드를 활용하여 천 단위 구분자(,)를 제거하는 메서드 생성도 가능
public static string SetNumberFormat(string str)
{
if (!string.IsNullOrWhiteSpace(str) && str.All(char.IsDigit))
{
return string.Format("{0:N0}", double.Parse(str));
}
else
{
// 문자열에 숫자외 다른 문자가 포함되어있을 경우, 음수가 포함되었을 경우
return "0";
}
}
2. C# 음수 포맷 (천 단위 구분자(,) 추가) 변환
public static string SetNumberFormat(int value)
{
return string.Format("{0:N0}", value);
}
3. C# 일자 형식 변환
public static string SetDateFormat(string date, string format = "yyyy-MM-dd")
{
if (format == "yyyy-MM-dd")
{
return $"{date.Substring(0, 4)}-{date.Substring(4, 2)}-{date.Substring(6, 2)}";
}
else if (format == "yyyy-MM-dd HH:mm:ss")
{
return $"{date.Substring(0, 4)}-{date.Substring(4, 2)}-{date.Substring(6, 2)} {date.Substring(8, 2)}:{date.Substring(10, 2)}:{date.Substring(12, 2)}";
}
else
{
return date;
}
}
4. C# 시간 포맷 변환
- 시간 정보가 담긴 문자열을 지정한 포맷으로 변경하는 메서드
public static string SetTimeFormat(string target, string format = "HH:mm:ss")
{
var result = "";
if (format == "HH:mm")
{
if (target.Length != 4)
{
//포맷팅 불가
return target;
}
result = $"{target.Substring(0, 2)}:{target.Substring(2, 2)}";
}
else if (format == "HH:mm:ss")
{
if (target.Length != 6)
{
//포맷팅 불가
return target;
}
result = $"{target.Substring(0, 2)}:{target.Substring(2, 2)}:{target.Substring(4, 2)}";
}
return result;
}
위 4가지 예제의 결과입니다.
해당 코드를 응용하여 숫자, 일자, 시간 여러 가지 형태로 변경하여 사용할 수 있습니다.
728x90
반응형
'소소한 C# 지식' 카테고리의 다른 글
[C#]NTP 서버 - PC 시스템 시간 동기화 프로그램 (4) | 2022.04.20 |
---|---|
[C#/WINFORM]-Datagridview Excel Import(엑셀 불러오기) (2) | 2022.04.20 |
[c#/WINFORM] - Datagridview Excel Export (엑셀 내보내기) (0) | 2022.04.18 |
[C#/WINFORM] C#에서 Word 문서 만들기 및 수정하기 (2) | 2022.04.13 |
[C# Winform]DatagridView 셀 병합 하기 (8) | 2022.04.11 |
댓글