2012-07-10 3 views
2

나이 확인을 수행하는 데 "우수 사례"접근 방식이 있는지 궁금합니다. 나는 지금부터 밀리 세컨드를 자신의 생년월일로부터 밀리 세컨드 (milliseconds)를 얻은 다음 자신의 생년월일 + ageReq * (365 * millPerYear)> currentMillisecond인지 확인하려고합니다.연령 확인을 수행하는 가장 좋은 방법은 무엇입니까?

나는이 방법이 효과가 있다고 생각하지만,이 접근 방법에 결함이 있는지 그리고/또는 여기에 예상하지 못한 함정 (예 : 윤년 문제가 있습니까?)이있는 라이브러리가 있는지 궁금해하고 있습니다.

이 문제는 언어에 무관심합니다. 저는 현재 Java를 사용하고 있습니다. 그러나이 작업을 수행하는 올바른 방법은 언어와 상관없이 무엇이 될지 궁금합니다.

TIA

+2

사용자가 시계를 변경하거나 웹 서비스 호출에서 반환 한 날짜를 편집하기 위해 프록시를 구현할 수 없다고 가정합니까? –

+0

당신의 아이디어는 좋다, 유일한 결점은 "현재 시간"부분이다. 사용자가 값을 변경할 수 있기 때문에 시계 시스템을 사용하는 것은 매우 나쁜 생각입니다. 구성한 시계 값이있는 서버 나 다른 PC에 대해 확인하는 것이 좋습니다. –

+0

'millPerYear'와 같은 상수가 없다는 것을 알기 전까지는 좋은 생각처럼 들리지만 - 윤초가 생기면 윤년이 조금 더 걸립니다. 재미있는. 정말로, 그것을 위해 라이브러리를 사용하십시오, 나쁘게 바퀴를 재발 명하지 마십시오. – Voo

답변

7

joda-time을 시도해보십시오. 네, 수표에 약간의 결함이 있습니다. 이것은 정확하지 않습니다. 따라야 할 법적인 준수 정도에 따라, 당신도 함께 살 수 있거나 없을 수 있습니다. Joda 시간은 모든 기본 검사를 처리하므로 좋은 라이브러리입니다.

언어에 구애받지 않는 사람을 찾고 계시다면. 그런 다음 Joda-time 코드를 살펴볼 수 있습니다. 그것은 정확하게 날짜를 계산하기 때문입니다.

+0

이것이 정확하게 필요한 것 같습니다. 고마워. –

2

기존 생년월일 후 정확한 차이를 얻을 수있는 날짜 및 달력 클래스를 사용하는 사용하는 경우. 당신이 당신의 방법을 사용한다면 그것은 윤년/초 등으로 인해 정확하지 않습니다 ... 날짜는 손으로 해결할 난장판입니다.

현재 생년월일이없고 기록 할 필요가 없다면 실제로 신청서를 제출할 것을 권고합니다. 지옥 같은 성가신 성격을 지녔기 때문에 신청서를 제출해야합니다. 무작위로 20 살 이상 된 사람. X 위/아래에 있으면 예 또는 아니오로 질문하십시오.

+0

정확합니다. 대부분의 웹 사이트에는 내 생일을 알 필요가 없으므로 "1900 년 1 월 1 일"이됩니다. –

+0

슬프게도 이것은 클라이언트 요구 사항입니다. 나는 진심으로 당신과 동의합니다. –

+0

고객과의 거래를 통해 고객이 위조 된 정보를 얻을 수 있으니 안심하십시오. : P –

관련 문제