첨부 실행 코드는 나눔고딕코딩 폰트를 사용합니다.
728x90
반응형
728x170

▶ DateTime 구조체 : 특정 요일의 다음 날짜 구하기 예제

DateTime sourceDate = DateTime.Now.Date;
DateTime targetDate = GetNextDate(sourceDate, DayOfWeek.Monday);

Console.WriteLine($"소스 날짜 : {sourceDate}");
Console.WriteLine($"타겟 날짜 : {targetDate}");

 

300x250

 

▶ DateTime 구조체 : 특정 요일의 다음 날짜 구하기

#region 다음 날짜 구하기 - GetNextDate(sourceDate, dayOfWeek, exceptSourceDate)

/// <summary>
/// 다음 날짜 구하기
/// </summary>
/// <param name="sourceDate">소스 날짜</param>
/// <param name="dayOfWeek">요일</param>
/// <param name="exceptSourceDate">소스 날짜 제외 여부</param>
/// <returns>다음 날짜</returns>
public DateTime GetNextDate(DateTime sourceDate, DayOfWeek dayOfWeek, bool exceptSourceDate = true)
{
    int difference1 = dayOfWeek - sourceDate.DayOfWeek;
    int difference2 = sourceDate.Date.Subtract(DateTime.Today).Days + difference1;

    if(difference2 < 0 || difference2 >= (exceptSourceDate ? 6 : 7) && difference1 < 0)
    {
        difference1 += 7;
    }

    difference1 = difference1 % 7;

    difference1 += difference1 == 0 & exceptSourceDate ? 7 : 0;

    return sourceDate.AddDays(difference1);
}

#endregion
728x90
반응형
그리드형(광고전용)
Posted by icodebroker

댓글을 달아 주세요