सीमा के भीतर दिनांक?


9

MM/DDदिनांक ( 12/24) और प्रारंभ / समाप्ति तिथि सीमा ( 11/01 - 06/24) को देखते हुए , यह पता लगाएँ कि क्या तिथि सूचीबद्ध तिथि अवधि के भीतर है।

तिथि सीमा क्रमिक ( 05/01 - 11/01) हो सकती है या अगले वर्ष के आसपास लपेट सकती है ( 11/01 - 05/01)।

उदाहरण:

  • 12/24in 11/01 - 06/24= सत्य है
  • 06/24in 11/01 - 06/24= सत्य है
  • 06/24in 06/24 - 06/24= सत्य है
  • 06/24में है 11/01 - 06/23= गलत
  • 07/24में है 11/01 - 06/24= गलत
  • 07/24in 05/01 - 11/01= सत्य है
  • 07/24in 07/23 - 07/20= सत्य है

सालों मैटर नहीं करते। किसी भी वर्ष के अतीत या भविष्य के लिए आवेदन करने की तिथि और / या तिथि सीमा मान ली गई है।

अंतिम तिथि हमेशा शुरुआत तिथि के बाद होगी। यदि अंतिम तिथि संख्यात्मक रूप से प्रारंभ तिथि से कम है, तो हम मानते हैं कि हम अगले वर्ष के लिए चारों ओर लपेट रहे हैं।

तीन इनपुट चर किसी भी विधि (args, HTTP, stdin, आदि ..) और किसी भी प्रारूप (स्ट्रिंग, JSON, सरणी, आदि) के माध्यम से हो सकते हैं।

प्रतिक्रिया booleanहां या नहीं / सही / आदि .. स्ट्रिंग के किसी भी रूप या हो सकती है । सबसे छोटा कोड जीतता है।

आप केवल एक बिल्ट-इन फ़ंक्शन के लिए args पास नहीं कर सकते।


क्या हम परिणाम को स्ट्रिंग्स की एक सरणी के रूप में ले सकते हैं? यानी ['MM', 'DD']?
श्री एक्सकोडर

टेस्ट केस सुझाव:11/01 - 06/24 includes 06/24?
श्री एक्सकोडर

@ Mr.Xcoder क्या आप किसी चीज़ का चित्र बना रहे हैं जैसे ['06', '24']कि सही है []या आपका क्या मतलब है?
Xeoncross

1
अपने दूसरे टेस्ट केस के लिए, मान लीजिए कि हम इस साल 2017और अगले साल बात कर रहे हैं 2018। हम चाहते हैं कि निर्धारित करने के लिए कैसे अपेक्षा की जाती है 06/24का मतलब है 2018और इस तरह से किया जाना चाहिए Trueन कि 2017और इस प्रकार Falseहै, क्योंकि यह पहले है 11/01?
AdmBorkBork

1
" date > start & date < end" - फिर आपके कुछ परीक्षण मामले गलत हैं। मुझे लगता है कि आपका क्या मतलब है start<=date<=end
झबरा

जवाबों:



4

जावास्क्रिप्ट (ईएस 6), 26 20 बाइट्स

(a,b,c)=>b>c^b>a^a>c

आउटपुट है 0अगर aसीमा के भीतर है b... c, 1यदि नहीं। संपादित करें: @nwellnhof के लिए 6 बाइट्स सहेजे गए।


1
किस बारे में (a,b,c)=>b>c^b>a^a>c?
nwellnhof

@nwellnhof मुझे विश्वास नहीं हो रहा है कि मैं चूक गया था - मेरा पहला प्रयास था b>a^a>c, लेकिन मैंने तब साधारण सुधार की अनदेखी की ...
नील

आपको बाइट काउंट अपडेट करना चाहिए।
nwellnhof

@nwellnhof क्षमा करें, मैं अभी भी सदमे से उबर रहा था!
नील

4

हास्केल , 28 बाइट्स

(a%d)e=((e<a)/=(a<d))==(e<d)

इसे ऑनलाइन आज़माएं!

बुलोरियों के साथ xor'ing की चाल के लिए लियो को धन्यवाद /=


हास्केल , 33 बाइट्स

(a%d)e=show[e>=d,d>a,a>e]!!16>'a'

इसे ऑनलाइन आज़माएं!


आपकी showचाल शांत है, लेकिन आप तीन तत्वों को फोल्ड 1 के साथ अधिक प्रत्यक्ष तरीके से XOR कर सकते हैं: tio.run/…
सिंह

1
@ अच्छा विचार, यह और भी छोटा है।
1

2

जावास्क्रिप्ट (ईएस 6), 31 बाइट्स

MM/DDप्रारूप में 3 स्ट्रिंग्स के रूप में इनपुट लेता है : तिथि , रेंज_फ्रेम , रेंज_तो । एक बूलियन देता है।

(a,b,c)=>!(b<c?a<b|a>c:a<b&a>c)

परीक्षण के मामलों


MM/DDप्रारूप के लिए धन्यवाद आप केवल स्ट्रिंग छँटाई का उपयोग कर सकते हैं। अच्छा विचार।
Xeoncross


1

पर्ल 6 , 33 31 29 बाइट्स

{.[0]>.[2]??![>] $_!![<=] $_}

इसे ऑनलाइन आज़माएं!

प्रारंभ, दिनांक और समाप्ति वाली सूची लेता है।

-2 बाइट्स रामलीज की बदौलत।


और यहां, आप 1 सूची तर्क लेने के बजाय 2 बाइट्स बचा सकते हैं। फिर @_[0]जैसा .[0]और [(whatever)] @_जैसा लिखा जा सकता है [(whatever)] $_। आपको बस इसे कॉल करने की आवश्यकता होगी $f(($s,$d,$e))
रामलीला

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.