날짜가 3 개월 미만인지 여부를 비교해야합니다.비교 날짜가 3 개월 미만
내가 설치 날짜 얻을 것이다 :
DateTime installdate=DateTime.Parse("1/5/2012 8:12:14 PM");
if ((installdate<DateTime.Now.AddMonths(-3)))
{
// do something
}
이이 날짜를 비교하는 가장 좋은 방법입니다?
감사합니다.
날짜가 3 개월 미만인지 여부를 비교해야합니다.비교 날짜가 3 개월 미만
내가 설치 날짜 얻을 것이다 :
DateTime installdate=DateTime.Parse("1/5/2012 8:12:14 PM");
if ((installdate<DateTime.Now.AddMonths(-3)))
{
// do something
}
이이 날짜를 비교하는 가장 좋은 방법입니다?
감사합니다.
몇 가지 유효 또는 무효 인 경우의 유효성을 검사 할 수 있도록 Tryparse가 사용된다 :
DateTime.TryParse
당신은 가능 사용 DateTime.ParseExact
또는 예상되는 형식으로 전달 DateTime.TryParseExact
(문화) 기본적으로, 다양한있다한다 날짜 및 시간 동작과 관련된 모서리 사례 - DateTime
, btw 대신 Noda Time 대신에 Noda Time을 사용하면 이러한 모든 것들에 대해 명시 적으로 생각해야합니다.
전나무 t 포인트, 만약 아이디어가 당신이 설치 시간 (또는 비슷한)에서 3 개월의 시험 기간을 얻는 것이라면, 그 대신에 에 3 개월 동안을 추가해야한다고 제안합니다. 나는 몇 가지에 저장하려고 할 것이다
DateTime installationDate = DateTime.Parse("1/5/2012 8:12:14 PM");
DateTime trialPeriodEnd = installationDate.AddMonths(3);
if (trialPeriodEnd > DateTime.Now)
{
// do something
}
당신이 어딘가에 설치 날짜 자신을 저장하고 가정 :
또한 변수 이름을 변경 거라고 및 방법에 의해 중복 괄호 제거 양식은 모호하지 않습니다. 문자열 대신 "틱 (ticks)"값만 저장할 수도 있습니다. 그러나 을 자신이 저장하는 경우이라고 가정하면 TryParse
을 사용할 필요가 없습니다. 값을 구문 분석 할 수없는 경우 "bang"으로 이동하는 것이 좋습니다. ParseExact
을 사용하고 standard format specifier "o"(왕복) 일 수 있습니다.
사용 TimeSpan
는 날짜 차이를 얻을 수 있습니다 :
TimeSpan difference = datetimeEnd - datetimeStart;
나쁜 생각 - Timespan에는'Months'가 없습니다 - 단지'Days' 만이죠; 우리가 정말 똑똑하다면 –
그래서? 'difference.Days> 90'을 사용하십시오. –
한 달은 반드시 30 일이되는 것은 아닙니다. – CodesInChaos
DateTime installdate ;
if (DateTime.TryParse("1/5/2012 8:12:14 PM", out installdate))
{
if ((installdate < DateTime.Now.AddMonths(-3))) { }
}
매개 변수에 전달 된 날짜에 대해 생각하는
설치 날짜가 가장 작성 가능성이 높기 때문에'Parse'를 사용하는 것이 IMO입니다. 나는 그것을 일반 "내 구성이 손상되었습니다"오류로 간주합니다. 특정 문화의 부재는 훨씬 더 큰 결함 IMO입니다. – CodesInChaos
예. 너가 확실히 맞아. 그러나 어떤 경우라도 오류를 처리하기위한 예방 조치의 요지입니다. – Pankaj
@StackOverflowUser :이 날짜가 합당한 * 예상 * 일 경우 예외가 아닌 올바른 응답이 올바른 것입니다. 'TryParse'는 값이 잘못된 경우 예외적 인 상황이 아닐 때 적합합니다. –
나에게 잘 어울립니다 – Jontatas
우선 3 개월 이내에 정확히 무엇을 의미합니까? – CodesInChaos
네, 괜찮습니다. TryParse()를 보라. 답을 더 안전하게하기 때문이다. – svrx