반응형
주의 첫 번째 월요일 날짜를 확인 하시겠습니까?
이 질문에 이미 답변이 있습니다.
오늘 날짜를 기준으로 현재 주 월요일 날짜를 얻는 방법을 알고 있는지 궁금합니다.
즉 2009-11-03이 전달되고 2009-11-02가 반환됩니다.
/미디엄
이것은 내가 사용하는 것입니다 (아마도 국제화되지 않았을 것입니다).
DateTime input = //...
int delta = DayOfWeek.Monday - input.DayOfWeek;
DateTime monday = input.AddDays(delta);
Pondium 답변은 경우에 따라 앞으로 검색 할 수 있습니다. 뒤로 검색 만 원하는 경우 다음과 같아야한다고 생각합니다.
DateTime input = //...
int delta = DayOfWeek.Monday - input.DayOfWeek;
if(delta > 0)
delta -= 7;
DateTime monday = input.AddDays(delta);
이런 식으로 작동합니다.
DateTime dt = DateTime.Now;
while(dt.DayOfWeek != DayOfWeek.Monday) dt = dt.AddDays(-1);
나는 더 좋은 방법이 있다고 확신합니다 :)
public static class DateTimeExtension
{
public static DateTime GetFirstDayOfWeek(this DateTime date)
{
var firstDayOfWeek = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
while (date.DayOfWeek != firstDayOfWeek)
{
date = date.AddDays(-1);
}
return date;
}
}
여기에 국제. 확장으로 더 유용 할 수 있다고 생각합니다.
는 어때:
CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek
네이티브 솔루션을 사용하지 않는 이유는 무엇입니까?
var now = System.DateTime.Now;
var result = now.AddDays(-((now.DayOfWeek - System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.FirstDayOfWeek + 7) % 7)).Date;
아마 월요일에 당신을 돌아올 것입니다. 월요일이 요일이 아닌 문화를 사용하지 않는 한.
이 시도:
public DateTime FirstDayOfWeek(DateTime date)
{
var candidateDate=date;
while(candidateDate.DayOfWeek!=DayOfWeek.Monday) {
candidateDate=candidateDate.AddDays(-1);
}
return candidateDate;
}
EDIT for completeness: overload for today's date:
public DateTime FirstDayOfCurrentWeek()
{
return FirstDayOfWeek(DateTime.Today);
}
참고URL : https://stackoverflow.com/questions/1665832/get-date-of-first-monday-of-the-week
반응형
'developer tip' 카테고리의 다른 글
Play 2.x : 공통 버튼으로 AJAX 요청을 만드는 방법 (0) | 2020.12.07 |
---|---|
How does condensed distance matrix work? (pdist) (0) | 2020.12.07 |
SELECT 쿼리 빈 결과에 대한 간단한 확인 (0) | 2020.12.06 |
런타임에 버튼의 "android : drawableTop"속성을 설정하는 방법 (0) | 2020.12.06 |
ColorFilter 제거 / setColorFilter 실행 취소 (0) | 2020.12.06 |