2011. 4. 19. 02:37

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

 

1. 확인

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

 

 

 

2. 코드

아래는 코드 입니다.

using System;

public class Program
{
	public static void Main()
	{
		Console.WriteLine("//0. 기준날짜");
		DateTime dateToday = DateTime.Today;
		Console.WriteLine("//결과 : " + dateToday.ToString());
		Console.WriteLine("DateTime dateToday = DateTime.Today;");

		Console.WriteLine(" ");

		Console.WriteLine("//0-2. 오늘 요일");
		Console.WriteLine("//결과 : " + dateToday.DayOfWeek.ToString());
		Console.WriteLine("DateTime dateToday = DateTime.Today;");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//1. 이번달 1일");
		DateTime dtFirstDay = dateToday.AddDays(1 - dateToday.Day);
		Console.WriteLine("//결과 : " + dtFirstDay.ToString());
		Console.WriteLine("DateTime dtFirstDay = dateToday.AddDays(1 - dateToday.Day);");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//2-1. 요번달 마지막날짜");
		DateTime dtMonthLastDay = dateToday.AddMonths(1).AddDays(-dateToday.Day);
		Console.WriteLine("//결과 : " + dtMonthLastDay.ToString());
		Console.WriteLine("DateTime dtMonthLastDay = dateToday.AddMonths(1).AddDays(dateToday.Day);");
		
		Console.WriteLine(" ");
		
		//https://learn.microsoft.com/ko-kr/dotnet/api/system.datetime.daysinmonth?view=net-7.0
		Console.WriteLine("//2-2. 요번달 마지막날짜");
		int nMonthLastDay2_Day = DateTime.DaysInMonth(dateToday.Year, dateToday.Month);
		DateTime dtMonthLastDay2 = new DateTime(dateToday.Year, dateToday.Month, nMonthLastDay2_Day);
		Console.WriteLine("//결과 : " + dtMonthLastDay2.ToString());
		Console.WriteLine("int nMonthLastDay2_Day = DateTime.DaysInMonth(dateToday.Year, dateToday.Month);");
		Console.WriteLine("DateTime dtMonthLastDay2 = new DateTime(dateToday.Year, dateToday.Month, nMonthLastDay2_Day);");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//3. 요번주의 남은 날짜(오늘포함, 토요일까지만)");
		int intWeekLeftDayCount = 7 - (int)(dtFirstDay.DayOfWeek);
		Console.WriteLine("//결과 : " + intWeekLeftDayCount.ToString());
		Console.WriteLine("int intWeekLeftDayCount = 7 - (int)(dtFirstDay.DayOfWeek);");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//4. 요번달의 첫 일요일(1일 기준이기 때문에 1일이 일요일이 아니면 전달 마지막 일요일이 표시됨.)");
		DateTime dtMonthFirstSunday = dtFirstDay.AddDays(0 - (int)(dtFirstDay.DayOfWeek));
		Console.WriteLine("//결과 : " + dtMonthFirstSunday.ToString());
		Console.WriteLine("DateTime dtMonthFirstSunday = dtFirstDay.AddDays(0 - (int)(dtFirstDay.DayOfWeek));");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//5. 마지막 주의 일요일");
		DateTime dtLastSunday = dtMonthLastDay.AddDays(0 - (int)(dtMonthLastDay.DayOfWeek));
		Console.WriteLine("//결과 : " + dtLastSunday.ToString());
		Console.WriteLine("DateTime dtLastSunday = dtMonthLastDay.AddDays(0 - (int)(dtMonthLastDay.DayOfWeek));");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//6. 마지막 주의 일수");
		int intLastWeekDayCount = dtMonthLastDay.DayOfYear - dtLastSunday.DayOfYear + 1;
		Console.WriteLine("//결과 : " + intLastWeekDayCount.ToString());
		Console.WriteLine("int intLastWeekDayCount = dtMonthLastDay.DayOfYear - dtLastSunday.DayOfYear + 1;");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//7. 이번 달의 주수를 가져오는 방법");
		int intMonthWeekCount = ((dtMonthLastDay.DayOfYear - dtMonthFirstSunday.AddDays(7).DayOfYear) / 7) + 2;
		Console.WriteLine("//결과 : " + intMonthWeekCount.ToString());
		Console.WriteLine("int intMonthWeekCount = ((dtMonthLastDay.DayOfYear - dtMonthFirstSunday.AddDays(7).DayOfYear) / 7) + 2;");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//8. 영어날짜");
		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());
		Console.WriteLine("//결과 : " + strNowEng.ToString());
		Console.WriteLine("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());");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

		Console.WriteLine("//9-1. 요번주의 원하는 요일의 날짜 구하기(여기서는 금요일)");
		DateTime fridayDate = dateToday.AddDays(Convert.ToInt32(DayOfWeek.Friday) - Convert.ToInt32(dateToday.DayOfWeek));
		Console.WriteLine("//결과 : " + fridayDate.ToString());
		Console.WriteLine("DateTime fridayDate = dateToday.AddDays(Convert.ToInt32(DayOfWeek.Friday) - Convert.ToInt32(dateToday.DayOfWeek));");

		Console.WriteLine(" ");

		Console.WriteLine("//9-2. 요번주의 일요일 날짜");
		DateTime dateSunday = dateToday.AddDays(Convert.ToInt32(DayOfWeek.Sunday) - Convert.ToInt32(dateToday.DayOfWeek));
		Console.WriteLine("//결과 : " + dateSunday.ToString());
		Console.WriteLine("DateTime dateSunday = dateToday.AddDays(Convert.ToInt32(DayOfWeek.Sunday) - Convert.ToInt32(dateToday.DayOfWeek));");

		Console.WriteLine(" ");
		Console.WriteLine(" ");

	}
}

 

 

수정 내역

- 2022.06.24

이번달 마지막 날짜 구하는 식의 오류 수정

필요없는 코드 제거

 

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

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

 

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

 

 

마무리

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

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