당신은 while
만들 조각 날짜를 절단하고 유효한 날짜가 될 때까지 하루 부분에서 하나를 뺀 유지할 수 있습니다. 이것은 입구 쪽에서 정말로 고쳐야한다.
이 시도 :
var date = "20140231";
DateTime scope;
bool dateValid = DateTime.TryParseExact(date, "yyyyMMdd", CultureInfo.CurrentCulture, DateTimeStyles.None, out scope);
while (!dateValid)
{
string yearMonth = date.Substring(0, 4);
int day = Convert.ToInt32(date.Substring(6, 2));
if (day > 1)
{
day--;
}
else
{
break;
}
date = yearMonth + day.ToString().PadLeft(2, '0');
dateValid = DateTime.TryParseExact(date, "yyyyMMdd", CultureInfo.CurrentCulture, DateTimeStyles.None, out scope);
}
무엇에 대한 윤년 생각? –
"20140230"은 어떻습니까? –
음,이 예제는 임의 선택이 아닙니다. 여전히 입력 29, 30, 31에 대해 매월 마지막 날짜를 원합니다. – Margus