윈 토토내부를 사용합니다 모든 날짜/시간 입력 지원에 대한 휴리스틱 파서. 날짜와 시간 문자열로 입력되며 뚜렷한 필드로 나뉩니다. 어떤 종류의 정보가있을 수 있는지에 대한 예비 결정 필드. 각 필드는 해석되고 할당됩니다 숫자 값, 무시 또는 거부. 파서에는 내부가 포함되어 있습니다 몇 달, 일을 포함한 모든 텍스트 필드에 대한 조회 테이블 일주일과 시간대
이 부록에는 이들 내용에 대한 정보가 포함되어 있습니다 조회 테이블 및 파서가 사용하는 단계를 설명합니다. 날짜와 시간 디코딩.
날짜/시간 유형은 모두 공통 세트를 사용하여 디코딩됩니다. 루틴.
날짜/시간 입력 해석
입력 문자열을 토큰으로 나누고 각각 분류합니다 문자열, 시간, 시간대 또는 숫자로서의 토큰.
숫자 토큰에 콜론이 포함 된 경우 (:), 이것은 시간 문자열입니다. 모두 포함하십시오 후속 숫자와 콜론.
숫자 토큰에 대시가 포함 된 경우 (-), 슬래시 (/) 또는 둘 이상의 점 (.), 이것은 날짜 문자열입니다 문자 달이 있습니다.
토큰이 숫자 만 있으면 단일 필드 또는 ISO 8601 연결 날짜 (예 :199901131 월 13 일, 1999) 또는 시간 (예 :14151614:15:16의 경우).
토큰이 Plus (로 시작하는 경우+) 또는 마이너스 (-), 그러면 시간대 또는 특별 필드.
토큰이 텍스트 문자열 인 경우 가능한 일치 문자열.
토큰에 대한 이진 검색 테이블 조회를 수행하십시오 특수 문자열 (예 :오늘), Day (예 :목요일), 월 (예 :1 월) 또는 소음 단어 (예 :at, on).
필드의 필드 값 및 비트 마스크를 설정합니다. 을 위한 예를 들어, 연도, 월, 날 설정오늘및 추가 시간, 분, 두 번째now.
찾을 수없는 경우 유사한 이진 검색 테이블을 수행하십시오 토큰과 시간대와 일치하는 조회.
찾을 수없는 경우 오류를 던지십시오.
토큰은 숫자 또는 번호 필드입니다.
4 자리 이상이 있고 다른 사람이없는 경우 날짜 필드는 이전에 읽은 다음 해석되었습니다 A로"연결 날짜"(예 :19990118). 8과 6 숫자는 연도, 월 및 일로 해석됩니다 7 및 5 자리는 연도, 연도로 해석됩니다. 각기.
토큰이 3 자리이고 1 년이있는 경우 이미 디코딩 된 다음 날로 해석했습니다 년도.
4 ~ 6 자리와 1 년이 이미 읽고 시간으로 해석하십시오.
4 자리 이상이면 a로 해석하십시오 년도.
유럽 날짜 모드에있는 경우, 그리고 주간 필드에 아직 읽지 않았으며 값이 또는 31과 같고 하루로 해석합니다.
월 필드가 아직 읽지 않은 경우 값은 12보다 작거나 같고 해석합니다. 한 달에.
하루 필드가 아직 읽지 않은 경우 값은 31보다 작거나 동일하며 하루.
두 자리 또는 4 자리 이상이라면 1 년으로 해석하십시오.
그렇지 않으면 오류를 던지십시오.
BC가 지정된 경우 연도를 부정하고 하나를 추가하십시오. 내부 저장 용. (해에는 제로가 없습니다 그레고리 캘린더, 그래서 숫자1BC연도가됩니다.)
BC가 지정되지 않은 경우, 연도 필드가 2 인 경우 길이가 숫자를 한 다음 해를 4 자리로 조정하십시오. 만약에 이 필드는 70 미만이었고 2000을 추가했습니다. 그렇지 않으면 추가하십시오 1900.
팁 :Gregorian Years AD 1-99가 입력 될 수 있습니다 선행 0과 함께 4 자리를 사용하여 (예 :0099AD 99입니다). 이전의 버전윈 토토3 자리 숫자와 단일 자리가 있지만 버전 7.0 규칙이 강화되었습니다 모호성의 가능성을 줄입니다.