2010-01-12 2 views
2

DateTimes는 일반적으로 일부 시작 날짜의 틱 수입니다. 이들은 보통 일정표와 같은 어떤 유형의 도구에 의해 표시됩니다. 때때로 "When when evaluated"또는 "Never"또는 "Unknown"과 같은 특별한 의미로 DateTime을 저장하려는 응용 프로그램이 있습니다.특수 DateTime 값을 처리하는 방법 - 예 현재

예를 들어 Oracle ERP를 실행 한 회사에서 근무했으며 주문 마감일이있었습니다. 종료일이없는 주문의 경우 회사는 2010 년 1 월 1 일 종료일을 정하고 2010 년 1 월 1 일이 사용자 및 보고서의 '깃발'이었습니다.

이 상황을 프로그래밍 방식으로 처리하는 유일한 방법은 DateTime "형식"을 나타내는 두 번째 필드를 갖는 것이지만 일반적으로 동의하지 않기 때문에 DateTime을 조작하려면 사용자 지정 코드가 필요합니다. 거기는 일반적으로 특정 이진 값에 특별한 의미 합의했다.

기존 규칙이 거기 아니면 내가?

내가 부동 소수점 형식은 IEEE 생각하고 여기서 특정 바이너리 모르고 나는이 공통 기능입니다 값은 무한대, NaN (숫자가 아님) 및 SQRT (-1)를 나타냅니다.

+0

Y2K 프로그래머는 절대로 작동하지 않습니다. 어리 석음은 무작위로 배포됩니다. –

답변

2

null 값을 허용하려면 Nullable<DateTime> (documentation)을 사용할 수 있습니다. 이 유형의 축약 형은 DateTime?입니다.

정의 된/정의되지 않은 상태를 더 많이 구분해야 할 경우 State 디자인 패턴을 적용 할 수 있지만 상태를 직접 구현해야합니다.

다형성은 일반적으로 이러한 문제를 해결하는 좋은 방법입니다. 다른 하위 유형의 특수 처리를 캡슐화 할 수 있기 때문입니다. 즉, 소비 코드에 많은 특수 케이스 처리를 작성할 필요가 없습니다.

관련 문제