반응형
DateTime과 TimeSpan 클래스에 대한 설명과
텍스트(string)으로 변환시 원하는 형식으로 표기하는 방법
우선 TimeSpan은 '시간'값 DateTime은 '시각'값을 가진다.
처음에 많이들 혼동하고 왜 다른 클래스로 관리를 하는지 의문을 가질때가 있다.
1.TimeSpan 클래스
TimeSpan은 어떤 A시각과 ~ B시각 사이의 시간혹은 '시간' 그 자체를 말함
예: 남은시간, 타임워치등
TimeSpan t = new TimeSpan(1, 30, 25); //일, 시, 분, 초, 밀리초 까지 입력가능
a.연산
일반적으로 *, /, -, + 모두다 가능하다
시간에 관련된 값은 대부분 Tick으로 저장하고있기에 따로 공부해보시길 추천한다.
2. DateTime 클래스
DateTime은 어떤 정해진 시간대, 날짜. 즉, "2024년 2월 15일" 과 같이 어떤 특정한 시간대를 저장한다.
예: 현재시간, 로그인 한 시각, 메시지를 보낸 시각, 약속날짜
//이렇게 특정 시간대를 입력한다
DateTime default_date = new DateTime(); //DateTime의 초기값은 "0001-01-01 00:00:00:00"
DateTime a = new DateTime(2024, 2, 15); //시,분,초를 입력하지 않았으므로 2024-2-15 00시00분00초
DateTime b = new DateTime(2024, 2, 15, 12, 30, 0); //2024-2-15 12시30분00초
DateTime now = DateTime.now; //현재 날짜, 시각을 알려준다
DateTime today = DateTime.today; //현재 날짜를 알려준다
a. 연산
DateTime(시각) + DateTime(시각)의 연산의 결과는 무조건 TimeSpan으로 반환된다.
2024-02-15 + 2024-04-01 = 2048-06-16 일이 되면 이상하지 않은가? 그래서 '시각'과 '시각'의 연산은 있을 수 없다.
아무튼 DateTime의 연산은 TimeSpan과 함께 해야한다.
DateTime a = new DateTime(2024, 2, 15, 12, 0, 0);
a.AddYears(1); //일년을 더함 => 2025-02-16 12시 00분 00초
a.AddMonths(1); //한달을 더함 => 2025-03-16 12시 00분 00초
a.AddDays(1); //1일을 더함 => 2025-03-16 12시 00분 00초
a.AddHours(1); //1시간을 더함 => 2025-03-16 13시 00분 00초
a.AddMinutes(10); //10분을 더함 => 2025-03-16 13시 10분 00초
a.AddSeconds(125); //125초를 더함= 2분5초 이므로 => 2025-03-16 13시 12분 05초
//뺄때도 역시 마찬가지로 Add~~ 를 사용
a.AddYears(-1); //일년을 뺌
a.AddMonths(-1); //한달을 뺌
a.AddDays(-1); //1일을 뺌
a.AddHours(-1); //1시간을 뺌
a.AddMinutes(-10); //10분을 뺌
a.AddSeconds(-125); //125초를 뺌
DateTime a = new DateTime(2024, 2, 15, 12, 0, 0);
TimeSpan span = new TimeSpan(10, 0, 0); //10시간
a.Add(span); //2024-02-15, 22시 00분 00초가 저장
//DateTime - DateTime = TimeSpan
DateTime b = new DateTime(2024, 1, 1, 12, 0, 0);
TimeSpan result = a - b; //
3. ToString 텍스트로 변환시 형식 (포맷Format) 지정
각 형식만 알고있으면 간단하다
y - 년
M - 월
d - 일
h - 시
m - 분
s - 초
yyyy-MM-dd hhmmss "2024-02-15 124050" 이런식으로 저장될것이다
@" " 이방식으로 포맷을 지정하면 \ (원표시) 뒤에 오는 것은 텍스트를 그대로 출력한다.
TimeSpan t = new TimeSpan(1,20,10);
string remainTime = a.ToString(@"hh\:mm\:ss"); //remainTime은 "01:20:10"가 저장될것
참고
반응형
'개발 & 강의 > Unity' 카테고리의 다른 글
유니티 경고메시지 - transform.parent → transform.SetParent() (0) | 2024.03.21 |
---|---|
유니티(Unity C#) static / const 예제를 통해 간단하게 이해하기 (0) | 2024.01.19 |
[유니티UI] Tab 탭 버튼과 메뉴 간단하게 만들기 +예제 (0) | 2023.11.11 |
[유니티]바로써먹자, Factory 패턴에 대한 소개 및 예제 (0) | 2023.09.26 |
[유니티UI] 레이아웃 크기에 맞춰 자동 크기 조절 ContentSizeFitter 예제 (0) | 2023.09.17 |