IT/C#

C# 이번주 특정요일의 날짜 구하기

하루콩콩 2020. 8. 13. 12:41
반응형

이번주에 해당하는 월요일 날짜를 구하는 방법이다.

예를 들어 오늘 날짜가 8월 14일 금요일이라고 가정했을때 8월 10일 월요일의 날짜를 구하는 방법이다.

오늘 날짜에 해당하는 방식으로 했는데 특정날짜에 해당하는 방식으로 하고 싶다면 코드를 변경하면 된다.

  DateTime dateToday = DateTime.Today;

    DateTime mondayDate = dateToday.AddDays(Convert.ToInt32(DayOfWeek.Monday) -    Convert.ToInt32(dateToday.DayOfWeek));

    string gDate = mondayDate.ToString("yy/MM/dd(ddd)", new CultureInfo("ko-KR"));

 

 

1.오늘 날짜를 구해준다. DateTime형이다. 만약 오늘이 아닌 특정 날짜에 해당하는 특정 요일을 구하고 싶다면 Today대신 구하고 싶은 특정 날짜를 DataTime형식으로 선언해주면 될 것이다.

    DateTime dateToday = DateTime.Today;

2.월요일을 계산한다. DayofWeek는 월요일부터 일요일 까지의 열거형을 나타낸다.

월요일:1~일요일:7 까지 요일에 따라 순차적으로 int가 증가한다.

AddDays라는 함수를 통해 요일을 산술해준다.

아래 계산 방식을 순차적으로 따라가면 dayofweek를 통해구한 월요일의 속성은 1이고 오늘(금요일)의 속성은5니까 1-5를 하게되면 -4라는 숫자가 나온다. 그리고 -4를 다시 금요일의 속성인 5에서 더해준다면 월요일의 속성인 1이 나오기 때문에 오늘 기준의 월요일 숫자가 계산되는 것이다.

만약 이번주의 월요일이 아닌 화요일을 계산하고 싶다면 DayofWeek.Monday대신에 DayofWeek.Tuesday를 넣어주면 될것이다.

     DateTime mondayDate = dateToday.AddDays(Convert.ToInt32(DayOfWeek.Monday) -    Convert.ToInt32(dateToday.DayOfWeek));

3.구해진 월요일은 String형식으로 포맷해준다. 날짜의 형식은 yy/MM/dd(ddd)형식이다.

예를 들어 구해진 월요일이 8월 10일이라고 했을때 20/08/10(월)로 표시된다.

    string gDate = mondayDate.ToString("yy/MM/dd(ddd)", new CultureInfo("ko-KR"));

 

 

 

 

 

  

반응형

'IT > C#' 카테고리의 다른 글

C# FTP 파일 업로드,다운로드  (0) 2020.08.24
C# MVC 세션값에 따라 화면 보이게 하는법  (0) 2020.04.01