, ,

* 지속적으로 추가하고 있습니다. *
다른 값이 필요하면 요청 주세요.

 

 

1. 확인

에디터를 눌러 'dotnetfiddle.net'사이트로 가서 직접 날짜를 수정하여 사용해 보실 수 있습니다.

 

 

 

2. 코드

아래는 코드 입니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//0. 기준날짜
//결과 : 2/10/2019 12:00:00 AM
DateTime dateToday = DateTime.Today;
 
//0-2. 오늘 요일
//결과 : Sunday
DateTime dateToday = DateTime.Today;
 
//1. 이번달 1일
//결과 : 2/1/2019 12:00:00 AM
DateTime dtFirstDay = dateToday.AddDays(1 - dateToday.Day);
 
//2. 요번달 마지막날짜
//결과 : 3/20/2019 12:00:00 AM
DateTime dtMonthLastDay = dateToday.AddMonths(1).AddDays(dateToday.Day);
 
//3. 요번주의 일요일 날짜
//11번을 참고해 주세요.
 
//4. 요번주의 남은 날짜(오늘포함, 토요일까지만)
//결과 : 2
int intWeekLeftDayCount = 7 - (int)(dtFirstDay.DayOfWeek);
 
//5. 요번달의 첫 일요일(1일 기준이기 때문에 1일이 일요일이 아니면 전달 마지막 일요일이 표시됨.)
//결과 : 1/27/2019 12:00:00 AM
DateTime dtMonthFirstSunday = dtFirstDay.AddDays(0 - (int)(dtFirstDay.DayOfWeek));
 
//6. 마지막 주의 일요일
//결과 : 3/17/2019 12:00:00 AM
DateTime dtLastSunday = dtMonthLastDay.AddDays(0 - (int)(dtMonthLastDay.DayOfWeek));
 
//7. 마지막 주의 일수
//결과 : 4
int intLastWeekDayCount = dtMonthLastDay.DayOfYear - dtLastSunday.DayOfYear + 1;
 
//8. 이번 달의 주수를 가져오는 방법
//결과 : 8
int intMonthWeekCount = ((dtMonthLastDay.DayOfYear - dtMonthFirstSunday.AddDays(7).DayOfYear) / 7+ 2;
 
//9. 오늘의 요일
//결과 : Sunday
string strNow_DayOfWeek = dateToday.DayOfWeek.ToString();
 
//10. 영어날짜
//결과 : Sunday February 2/10/2019 12:00:00 2019
string strNowEng = String.Format(new System.Globalization.CultureInfo("en-US"), "{0:dddddddddd} {0:MMMMMMMM} {0:d} {0:hh}:{0:mm}:{0:ss} {0:yyyy}", dateToday.ToUniversalTime());
 
//11. 요번주의 원하는 요일의 날짜 구하기(여기서는 금요일)
//결과 : 2/15/2019 12:00:00 AM
DateTime fridayDate = dateToday.AddDays(Convert.ToInt32(DayOfWeek.Friday) - Convert.ToInt32(dateToday.DayOfWeek));
 
//11-2. 요번주의 일요일 날짜
//결과 : 2/10/2019 12:00:00 AM
DateTime dateSunday = dateToday.AddDays(Convert.ToInt32(DayOfWeek.Sunday) - Convert.ToInt32(dateToday.DayOfWeek));
cs

 

 

수정 내역

- 2014.01.08
: 3번 이번주 일요일 날짜 구하는 식 제거

: 11-1번에 이번주 일요일 날짜 구하는 식 추가

 

- 2014.01.08
: 1월달 주수 계산이 잘못 되던것 수정

 

마무리

업데이트 한지가 오래되었는데 여전히 별문제 없이 잘 돌아가는 거 같습니다.

실버라이트가 지원이 끊기면서 닷넷피들로 바꿔봤는데 아직 인터페이스 문제가 많네요 ㅡ,.ㅡ;;

  1. 김종찬 2012.01.03 10:26  Address  Edit/Delete  Reply

    퍼갈께요

  2. 김성효 2012.03.23 15:18  Address  Edit/Delete  Reply

    감사합니다 많은 도움이 되었습니다

  3. Favicon of http://blog.naver.com/kajukaju BlogIcon 즈샴 2012.07.21 22:25  Address  Edit/Delete  Reply

    퍼갑니다.. 링크도 퍼갑니다..

  4. Favicon of http://xyz37.blog.me BlogIcon 김기원 2012.07.25 13:38  Address  Edit/Delete  Reply

    좋은데요.
    링크로 퍼갈께요.

  5. 검색하다가 2014.01.08 01:25  Address  Edit/Delete  Reply

    검색하다가 여기 있는걸 참고한게 있는데요.
    현재 실행해 보면

    //8. 이번 달의 주수를 가져오는 방법
    //결과 : -47
    int intMonthWeekCount = ((last_sunday.DayOfYear - first_sunday.DayOfYear) / 7) + 1;

    실행일은 2014-01-08

    결과가 -47로 나오는데 첫번째 일요일이 2013-12-29(2014/01/01이 있는 주의 일요일)이고
    해당년의 마지막 주차였으니 숫자가 큽니다.
    그 때문에 -(마이너스) 결과가 나왔네요.

    해결방법을 검색으로 찾아보는데 아직 못 찾는 ..

    • Favicon of https://blog.danggun.net BlogIcon 당근천국 2014.01.08 11:59 신고  Address  Edit/Delete

      연초를 생각 못했네요 ㅎㄷㄷㄷ

      제가 생각해보니 그러면 첫번째 일요일에서부터 계산하지말고 두번째주 일요일부터 계산한후 한주를 더해주는 것이 가장 간편하게 계산하는 방법인것 같습니다.

      int intMonthWeekCount2 = ((dtMonthLastDay.DayOfYear - dtMonthFirstSunday.AddDays(7).DayOfYear) / 7) + 2;

  6. 마지막일자 체크 2016.10.31 12:22  Address  Edit/Delete  Reply

    동일한 방식
    http://ultteky.egloos.com/10000941

    DateTime last_day = CalDate.AddMonths(1).AddDays(0 - CalDate.Day);
    2016/10/31일로 테스트하면 30으로 나옴 => 버그


    다른 사이트에서 찾은 방법
    http://webkorea.tistory.com/46
    그달의 1일로 셋팅하고 1개월 더해주고 1일을 뺌.

    2016/10/31일로 테스트하면 31로 나옴 => 정상.

    보시면 확인 부탁해요~

댓글 작성

이름
패스워드
홈페이지
비밀글