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