範囲内の日付?


9

与えられたMM/DD(日付12/24)および開始/終了日付範囲(11/01 - 06/24日付が記載されている日付のスパン内にあるかどうか)、フィギュア。

日付範囲は連続的(05/01 - 11/01)または翌年にラップアラウンド()できます11/01 - 05/01

例:

  • 12/24ある11/01 - 06/24= True
  • 06/24ある11/01 - 06/24= True
  • 06/24ある06/24 - 06/24= True
  • 06/24ある11/01 - 06/23= False
  • 07/24ある11/01 - 06/24= False
  • 07/24ある05/01 - 11/01= True
  • 07/24ある07/23 - 07/20= True

年は従わない。日付および/または日付範囲は、過去または将来の任意の年に適用されると想定されています。

終了日は常に開始日より後の日付になります。終了日が開始日より数値的に小さい場合、翌年に折り返していると見なされます。

3つの入力変数は、任意のメソッド(args、HTTP、stdinなど)を介して、任意の形式(文字列、JSON、配列など)で入力できます。

応答booleanは、yes / no / correct / etc ..文字列の任意の形式にすることができます。最短のコードが勝ちます。

単純に引数を組み込み関数に渡すことはできません。


代わりに、結果を文字列の配列として取得できますか?つまり['MM', 'DD']
Xcoder氏2017

テストケースの提案:11/01 - 06/24 includes 06/24?
Xcoder氏2017

@ Mr.Xcoderは、['06', '24']他に[]何があるのか​​、どういう意味ですか?
Xeoncross 2017

1
2番目のテストケースとして、今年2017と来年について話し合っているとします2018。どのように我々はそれを決定することになっている06/24手段を2018、したがって、あるべきTrueではなく2017、したがって、Falseそれは前だから11/01
AdmBorkBork 2017

1
" date > start & date < end"-次に、テストケースの一部が間違っています。ということだと思うstart<=date<=end
Shaggy

回答:



4

JavaScript(ES6)、26 20バイト

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

出力がある0場合はa範囲内にあるb... c1そうでない場合。編集:@nwellnhofのおかげで6バイトが節約されました。


1
どう(a,b,c)=>b>c^b>a^a>cですか?
nwellnhof 2017

@nwellnhof見逃したなんて信じられません-私の最初の試みはでしたがb>a^a>c、その後、簡単な修正を見落としました...
Neil

バイト数を更新する必要があります。
nwellnhof 2017

@nwellnhof申し訳ありませんが、私はまだショックから逃げていました!
ニール

4

Haskell、28バイト

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

オンラインでお試しください!

でブール値をxorするトリックについてLeoに感謝し/=ます。


Haskell、33バイト

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

オンラインでお試しください!


あなたのshowトリックはクールですが、foldl1とより直接的な方法で3つの要素がXORすることができますtio.run/...
レオ

1
@Leoいい考えです、それはさらに拡張された拡張です。
xnor

2

JavaScript(ES6)、31バイト

入力を3つの文字列MM/DD形式で受け取ります:daterange_fromrange_to。ブール値を返します。

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

テストケース


MM/DDフォーマットのおかげで、文字列の並べ替えを使用できます。良いアイデア。
Xeoncross 2017


1

Perl 6の33の 31 29バイト

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

オンラインでお試しください!

開始、日付、終了を含むリストを取得します。

-Ramilliesのおかげで2バイト。


ここでは、代わりに1つのリスト引数を取ることで2バイトを節約できます。次に@_[0].[0]および[(whatever)] @_として記述できます[(whatever)] $_。あなたはちょうどそれをのように呼び出す必要があり$f(($s,$d,$e))ます。
Ramillies

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.