Programming Language/C#
[C#] TQC+ 문제 CS_404
공구일
2025. 5. 21. 21:37
728x90
🔍C#: CS_404 .
입력받은 날짜값이 일요일라면 월요일부터 그 주 일요일까지를 출력하고, 나머지 요일이라면 그 날짜의 저번주를 출력하시오.
1. 문제 정답
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Security.Authentication;
namespace CS_404 {
class CS_404 {
static void Main(string[] args){
CheckDate();
}
static void CheckDate(){
if (DateTime.TryParseExact(Console.ReadLine(), "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime date)) {
int day = (int)date.DayOfWeek;
if(day == 0) {
Console.Write($"{date.AddDays(-6).ToString("yyyy/MM/dd")}-{date.Date.ToString("yyyy/MM/dd")}");
} else{
DateTime nDate = date.AddDays(-7);
Console.Write($"{nDate.AddDays(1-day).ToString("yyyy/MM/dd")}-{nDate.AddDays(7-day).ToString("yyyy/MM/dd")}");
}
} else Console.Write("error");
}
}
}
2. 정리
- TryExactParse(... ) : CultureInfo.InvariantCulture는 정적 속성으로 언어 중립적이며 고정된 문화권 정보를 사용하고 싶을 때 사용해주면 됩니다. TryParseExact()에서는 DateTimeStyles.None(정확히 값이 일치해야함)을 기본값으로 간주하지만 생략할 수는 없으므로 무조건 작성해줘야합니다.
- DayOfWeek는 DateTime 구조체 내에 있는 속성으로 열거형으로 일요일부터 토요일까지를 0~6값을 가집니다. DateTime에서 날짜를 추가하고 뺄 때는 AddDays()에 양수,음수를 넣어 조절해주면 됩니다.
728x90