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
반응형
그리드형(광고전용)
'C# > Common' 카테고리의 다른 글
[C#/COMMON] RNGCryptoServiceProvider 클래스 : GetBytes 메소드를 사용해 임시 패스워드 생성하기 (0) | 2022.07.04 |
---|---|
[C#/COMMON] RNGCryptoServiceProvider 클래스 : GetBytes 메소드를 사용해 토큰 생성하기 (0) | 2022.07.04 |
[C#/COMMON/.NET6] Random 클래스 : Next 메소드를 사용해 임시 패스워드 생성하기 (0) | 2022.07.04 |
[C#/COMMON/.NET6] 고정밀 지연 함수 만들기 (0) | 2022.07.04 |
[C#/COMMON/.NET5] HIGHT ECB 모드를 사용해 암호화/복호화하기 (0) | 2022.07.04 |
[C#/COMMON] 누겟 설치 : Costura.Fody (0) | 2022.06.26 |
[C#/COMMON/.NET6] Array 클래스 : Resize 정적 메소드를 사용해 배열에서 특정 요소 삭제하기 (0) | 2022.06.25 |
[C#/COMMON/.NET6] 속성 값 할당 가능 여부 구하기 (0) | 2022.06.25 |
[C#/COMMON/.NET6] Nullable 타입 여부 구하기 (0) | 2022.06.25 |
[C#/COMMON/.NET6] Convert 클래스 : ChangeType 정적 메소드를 사용해 지정 타입으로 변환하기 (0) | 2022.06.24 |
댓글을 달아 주세요