मेरी वेबसाइट पर, उपयोगकर्ता शैली में अपनी जन्म तिथि दर्ज करते हैं xx.xx.xx
- तीन दो अंकों की संख्या डॉट्स द्वारा अलग। दुर्भाग्य से, मैं उपयोगकर्ताओं को यह बताना भूल गया कि किस प्रारूप का उपयोग करना है। मुझे पता है कि एक खंड महीने के लिए, एक तिथि के लिए, और एक वर्ष के लिए उपयोग किया जाता है। वर्ष निश्चित रूप से 20 वीं शताब्दी (1900-1999) में है, इसलिए प्रारूप का 31.05.75
अर्थ है 31 May 1975
। इसके अलावा, मुझे लगता है कि हर कोई ग्रेगोरियन या जूलियन कैलेंडर का उपयोग करता है।
अब, मैं अपने डेटाबेस के माध्यम से गंदगी को साफ करना चाहता हूं। मैं सबसे अस्पष्ट तारीखों के साथ उपयोगकर्ताओं के साथ काम करके शुरू करना चाहता हूं, अर्थात्, जहां संभव तिथियों की सीमा सबसे बड़ी है।
उदाहरण के लिए, तिथि का 08.27.53
अर्थ 27 August 1953
या तो ग्रेगोरियन या जूलियन कैलेंडर है। जूलियन कैलेंडर में तारीख 13 दिन बाद की है, इसलिए सीमा बस है 13 days
।
इसके विपरीत, अंकन 01.05.12
कई संभावित तिथियों को संदर्भित कर सकता है। जल्द से जल्द है 12 May 1901 (Gregorian)
, और नवीनतम है 1 May 1912 (Julian)
। सीमा है 4020 days
।
नियम
- इनपुट प्रारूप में एक स्ट्रिंग है
xx.xx.xx
, जहां प्रत्येक फ़ील्ड दो अंकों और शून्य-गद्देदार है। - आउटपुट रेंज में दिनों की संख्या है।
- आप मान सकते हैं कि इनपुट हमेशा एक मान्य तारीख होगी।
- आप किसी भी अंतर्निहित दिनांक या कैलेंडर फ़ंक्शन का उपयोग नहीं कर सकते हैं।
- सबसे छोटा कोड (बाइट्स में) जीतता है।
परीक्षण के मामलों
01.00.31
=>12
29.00.02
=>0
(केवल संभावना है29 February 1900 (Julian)
)04.30.00
=>13
06.12.15
=>3291
5, May 1975
होना चाहिए31st
? इसके अलावा, क्या हमें लीप इयर्स का हिसाब देना होगा?