일자가 해당 월에 몇주차인지 구하는 법.
제목 달기 어렵네..
// 테스트용도.
for (int day = 1; day <= 31; day++)
{
int wcnt1 = GetWeeksOfYear(new DateTime(2010, 10, day));
int wcnt2 = GetWeeksOfMonth(new DateTime(2010, 10, day));
textBox1.AppendText(string.Format("{0} : {1}주차 / {0} : {2}주차" + Environment.NewLine,
day, wcnt1, wcnt2));
}
// 내가 만든 것.
private static int GetWeekCnt(DateTime dt)
{
int week = Enum.GetValues( typeof( DayOfWeek) ).Length;
int dayOffset = (int)dt.AddDays(-(dt.Day - 1)).DayOfWeek;
int weekCnt = (dt.Day + dayOffset) / week ;
weekCnt += ((dt.Day + dayOffset) % week ) > 0 ? 1 : 0;
return weekCnt;
}
// 훈스에 몬난아님이 검색하신걸 내가 수정한것.
// 이건 해당 년도에 주차 수를 구한다.
public int GetWeeksOfYear(DateTime date)
{
System.Globalization.CultureInfo cult_info = System.Globalization.CultureInfo.CreateSpecificCulture("ko");
System.Globalization.Calendar cal = cult_info.Calendar;
int weekNo = cal.GetWeekOfYear(date, cult_info.DateTimeFormat.CalendarWeekRule, cult_info.DateTimeFormat.FirstDayOfWeek);
int week1day = cal.GetWeekOfYear(date.AddDays( -( date.Day+1 )), cult_info.DateTimeFormat.CalendarWeekRule, cult_info.DateTimeFormat.FirstDayOfWeek);
return weekNo - week1day + 1;
}
음...
'# 1) 프로그래밍' 카테고리의 다른 글
HWP 바이너리 파일... (0) | 2011.03.23 |
---|---|
문자열 첫번째 검색 문자만 Replace (0) | 2010.09.30 |
DateTime관련.. (0) | 2010.09.09 |
피벗 메서드 (0) | 2010.08.26 |
새로운 프로젝트 & 6월에 나의 프로젝트! (0) | 2010.06.03 |