আজ রাতে বা এই সপ্তাহান্তে এটিকে আবার প্লাগ করুন


20

এটি আমার প্রথম কোড গল্ফ তাই এটি খুব বিস্তৃত কিনা বা কোনও ভাল ধাঁধার জন্য আমি কোনও তথ্য অনুপস্থিত থাকলে দয়া করে আমাকে জানান!

চ্যালেঞ্জ

অন্টারিও এবং সম্ভবত বিশ্বের অন্যান্য অঞ্চলে টাইম-অফ-ইউজ (টিওইউ) মূল্য ব্যবহার করে বিদ্যুৎ বিল করা হয়, যা আপনি বিদ্যুৎ ব্যবহারের সময় অনুযায়ী প্রতি কিলোওয়াট-ঘণ্টায় ব্যয় পরিবর্তিত করে।

একটি তারিখ এবং সময় দেওয়া হয়েছে, আমি জানতে চাই যে আমি অন-পিক (লাল), মিড-পিক (হলুদ), বা অফ-পিক (সবুজ) সময় পর্বের মধ্যে আছি কিনা।

ইনপুট

ধরে নিন যে ইনপুটটি গ্রহণযোগ্য টাইমজোন-কম আইএসও 8601 তারিখ-সময়ের বিন্যাসে ন্যূনতম যথার্থতার সাথে সরবরাহ করা হয়: YYYY-MM-DDThh[:mm[:ss]](টি আক্ষরিক)।

উদাহরণ

  • 2014-09-01T14
  • 2014-09-01T17: 30
  • 2014-09-01T17: 30: 02

আউটপুট

আউটপুট একটি স্ট্রিং হওয়া On, Midঅথবা Off

বিধি

  • সংক্ষিপ্ততম কোড জিতেছে
  • এই চ্যালেঞ্জের উদ্দেশ্যে, বিধিবদ্ধ ছুটি উপেক্ষা করুন
  • এই পোস্টে পাওয়া তথ্য ধরে। অন্টারিও জ্বালানি মন্ত্রক ভবিষ্যতে ব্যবহারের সময় নির্ধারণের আসল বিধিগুলি পরিবর্তন করতে পারে।

তথ্য

গ্রীষ্মের সপ্তাহের দিনগুলি (1 ই মে থেকে 31 অক্টোবর)

গ্রীষ্মের সপ্তাহের দিনগুলির জন্য ব্যবহারের সময়-ব্যবহার clock

  • অফ-শিখর: 19h00 - 07h00
  • মাঝ-শিখর: 07h00 - 11h00 এবং 17h00 - 19h00
  • অন-শিখর: 11h00 - 17h00

শীতের সপ্তাহের দিনগুলি (1 লা নভেম্বর থেকে 30 এপ্রিল)

শীতের সপ্তাহের জন্য সময় ব্যবহারের সময় clock

  • অফ-শিখর: 19h00 - 07h00
  • মাঝ-শিখর: 11h00 - 17h00
  • অন-শিখর: 07h00 - 11h00 এবং 17h00 - 19h00

সপ্তাহান্তে

উইকএন্ডে ব্যবহারের সময়-ব্যবহার clock

  • অফ-পিক: সারাদিন

আপনি কি শীতের সপ্তাহের দিনগুলিতে মিড-পিক / অন-পিক অদলবদল করেন না?
জন ডিভোরাক

3
@ জানডভোরাক, শীতে লোকেরা সকালে এবং সন্ধ্যায় লাইট এবং হিটিং ব্যবহার করে; গ্রীষ্মে তারা মধ্যাহ্নে এয়ার-কন ব্যবহার করে।
পিটার টেলর

4
এটি কোডগল্ফ.স্ট্যাকেক্সেঞ্জার / কিউ / 7০০৮/১৯৪ এর বর্ডারলাইন -সদৃশ (একটি ডেটটাইম পার্স করুন এবং এটি কার্যদিবস দিন কিনা তা ভিত্তিতে একটি সাধারণ গণনা করুন)। আমি মনে করি seasonতু নির্ভরতা কেবল যথেষ্ট আলাদা, তবে অন্যরা এতে দ্বিমত পোষণ করতে পারেন।
পিটার টেলর

লিখিত প্রশ্নের তুলনায় পিটারটেলর @ বিধিগুলি এখানে অনেক সহজ বলে মনে হচ্ছে। উদাহরণস্বরূপ, এটি লিপ বছরগুলি পরিচালনা করতে হবে না।
জন ডিভোরাক

3
সাধারণ তারিখের ফর্ম্যাটটি কি YYYY-MM-DDThh[:mm[:ss]]কয়েক মিনিট প্রয়োগ করা হলে কেবল সেকেন্ডে প্রয়োগ করা যেতে পারে?
ক্রંચার

উত্তর:


3

রুবি - 147 144 143 141 137 135

x=->s{y,m,d,h=s.scan(/\d+/).map &:to_i
g=Time.new(y,m,d).wday%6<1?0:[0..11,4..9].count{|r|r===h-7}
%W{Off Mid On}[m<5||m>10?(3-g)%3:g]}

এটি এমন একটি ফাংশন উপস্থাপন করে যা পরামিতি হিসাবে একটি স্ট্রিং নেয় এবং একটি স্ট্রিং প্রদান করে।

এখানে কয়েকটি পরীক্ষার ক্ষেত্রে একটি অনলাইন ডেমো রয়েছে: http://ideone.com/wyIydw


8

পাইথন 2 - 164

from datetime import*
d,t=input().split('T')
y,m,d=map(int,d.split('-'))
t=int(t[:2])
print'OMOfinfd'[(1+((10<t<17)==(4<m<11)))*(date(y,m,d).weekday()<5<6<t<19)::3]

প্রয়োজনে, চূড়ান্ত লাইনে যুক্তির ব্যাখ্যা নীচে দেওয়া হল:

চূড়ান্ত রেখাটি 'OMOfinfd'এর শর্তসাপেক্ষের মূল্যায়নের উপর নির্ভর করে একটি স্লাইস ছাপায় ।

  • প্রথমে অপারেশনটি মূল্যায়ন করুন 1+((10<t<17)==(4<m<11))

    যদি শর্তগুলির মধ্যে XNOR হয় 10<t<17এবং 4<m<11হয় Falseতবে এটি মূল্যায়ন করবে 1+False => 1+0 => 1। অন্যথায়, অপারেশনটি মূল্যায়ন করবে 1+True => 1+1 => 2

  • পরিশেষে, উপরের ক্রিয়াকলাপের সেই ফলাফলটি দিনটি সপ্তাহের দিন কিনা এবং সময়টি সকাল-টা থেকে সন্ধ্যা between টার মধ্যে হবে কিনা তা দিয়ে গুন করুন।

    যদি এটি Falseহয় তবে হয় দিনটি সাপ্তাহিক ছুটির দিন বা সময় সন্ধ্যা am টা ৫০ মিনিটের মধ্যে, এবং ফলাফলটি হবে (1|2)*0 => 0। অন্যথায় ফলাফল হবে (1|2)*1 => 1|2

ফলে 0প্রিন্ট হবে Off, 1প্রিন্ট হবে Mid, এবং 2প্রিন্ট হবে On


আপনি সেমিকোলন ব্যবহার করার কারণে গল্ফযুক্ত সংস্করণটি আসলে কি আর দীর্ঘ নয়? না নিউলাইন গণনা করা হয়?
বিটা ক্ষয়

নিউলাইনগুলি সাধারণত গণনা করা হয়। নোটপ্যাড ++, (যেখানে আমি সাধারণত আমার গন্য পাবেন) সালে ungolfed সংস্করণ 4bytes আর 168. এ
BeetDemGuise

3
@ বিটডেমগুইস সম্পাদনা করুন → ইওএল রূপান্তর → ইউনিক্স / ওএসএক্স ফর্ম্যাট।
শিজম

5

সি # - 240 220 টি অক্ষর

string x(string s){var d=DateTime.Parse((s+":00:00").Substring(0,19));int h=d.Hour,i=(int)d.DayOfWeek,x=d.Month;string o="off",m="mid",f="on";return i==6|i==0?o:x>=5&x<11?h>18|h<7?o:h>10&h<17?f:m:h>18|h<7?o:h>10&h<17?m:f;}

বিশেষ কিছু না. সোজা ফরোয়ার্ড কোডিং।

W0lf ধন্যবাদ :)


1
আমার মনে হয় আপনি খাটো করতে পারেন s.Length==13?s+":00:00":s.Length==16?s+":00":sথেকে(s+":00:00").Substring(0,19)
ক্রিস্টিয়ান Lupascu

5

রুবি - 135

সময় মডিউল অপব্যবহার। কমান্ড লাইন আর্গুমেন্ট দ্বারা ইনপুট।

d=Time.new(*$*[0].scan(/\d+/)[0..3])
o,m,f=%w{On Mid Off}
o,m=m,o if (d.mon-5)%10<6
p d.wday%6<1||(12>h=(d.hour+5)%24)?f:15<h&&h<22?m:o

সম্পাদনা করুন: সময়ের জন্য ডাব্লু0 এলএফ ধন্যবাদ যা সংক্ষিপ্ত করতে এবং বাগ সমাধান করতে সহায়তা করেছে।


আপনার প্রোগ্রামটি ভুল। ইনপুট জন্য 2014-09-01T17:30এটি সঠিকভাবে আউটপুট "Mid", কিন্তু 2014-09-01T17এটি আউটপুট জন্য "Off"
ক্রিশ্চিয়ান লুপাস্কু

3

গ্রোভি - 621 534 524 491 অক্ষর

আরও কিছু করতে গল্ফ করছে, কিন্তু জোদা-টাইমকে কাজে লাগানোর সময় বেশ সহজ

@Grab(group='joda-time',module='joda-time',version='2.3')
f={p,a->org.joda.time.format.DateTimeFormat.forPattern(p).parseDateTime a}
g={p,a->def x=null;try{x=f p,a}catch(Exception e){}}
a=args[0]
d=["",":mm",":mm:ss"].collect{g "yyyy-MM-dd'T'HH$it",a}.find{it}
r="Off"
m="Mid"
j={d,a,b->d.hourOfDay>a&&d.hourOfDay<b}
k={j(it,6,11)||(j(it,16,19))}
if(d.dayOfWeek<6){x=d.monthOfYear;if(x>4&&x<12){if(j(d,10,17))r="On";if(k(d))r=m}else if(x<5||x>10){if(j(d,10,17))r=m;if(k(d))r="On"}}
println r

নমুনা রান:

bash-3.2$ ./run.peak.sh 
groovy Peak.groovy 2014-08-26T19
Off
groovy Peak.groovy 2014-08-26T07:00
Mid
groovy Peak.groovy 2014-08-26T18:00:00
Mid
groovy Peak.groovy 2014-08-26T12:30:30
On
groovy Peak.groovy 2014-11-01T00
Off
groovy Peak.groovy 2014-02-05T11:11:11
Mid
groovy Peak.groovy 2014-01-05T08:08
Off
groovy Peak.groovy 2014-12-18T18:59:59
On
groovy Peak.groovy 2014-08-31T14
Off

Ungolfed:

@Grab(group='joda-time',module='joda-time',version='2.3')

f = { p,a -> org.joda.time.format.DateTimeFormat.forPattern(p).parseDateTime a}
g = { p,a -> def x=null; try{x=f p,a} catch(Exception e) {} }
a=args[0]

d = ["",":mm",":mm:ss"].collect{g "yyyy-MM-dd'T'HH$it",a}.find{it}
r = "Off"
m = "Mid"

j = {d,a,b -> d.hourOfDay > a && d.hourOfDay < b}
k = { j(it,6,11) || (j(it,16,19)) }

if (d.dayOfWeek<6) {
    x = d.monthOfYear;
    if ( x>4 && x<12 ) {
        if (j(d,10,17)) r="On";
        if (k(d)) r=m
    } else if (x<5||x>10) {
        if (j(d,10,17)) r=m;
        if (k(d)) r="On"
    }
}
println r

2
জাভা 8-এর পর থেকে java.time.*, যা জোদা সময়ের সাথে খুব মিল তবে জেআরই অংশ of সম্ভবত এটি কোডটি কিছুটা ছোট করতে পারে।
ntoskrnl

পুনরায়: জাভা 8. দুর্দান্ত পয়েন্ট
মাইকেল ইস্টার

আপনার তৃতীয়-শেষবারের উদাহরণে '2014-01-05T08:08', জানুয়ারী 5, 2014 রবিবার। সুতরাং, এটি হওয়া উচিত'Off'
বেটডেমগুইজ

পুন: 5 জানুয়ারী, 2014. একদম ঠিক। বর্তমান কোডটি সঠিক, তবে আউটপুট রানটি ভুল। ঠিক করবে.
মাইকেল ইস্টার

চেষ্টা করেছেন java.time.*। খারাপভাবে ব্যর্থ হয়েছে। পার্সারটি অত্যন্ত জঘন্য। DateParserন্যাশর্ন (জেআরই 8 এরও একটি অংশ) থেকে ব্যবহার করুন যা লেনিয়েন্ট এবং কিছুটা আপত্তিজনক হ্যাকিং সহ, এমনকি কয়েক মিনিট ও সেকেন্ড এড়িয়ে যাওয়ার পক্ষে যথেষ্ট লেনিয়েন্ট।
মার্ক জেরোনিমাস

2

আর, 243 204 টি অক্ষর

b=strptime(scan(,""),"%Y-%m-%dT%H");i=function(x)as.integer(format(b,x));h=i("%H");d=i("%m%d");w=d>1100|d<430;f=ifelse;cat(c("Off","Mid","On")[f(i("%u")%in%5:6|h<7|h>19,1,f(h>11&h<17,f(w,2,3),f(w,3,2)))])

অভিযুক্ত এবং মন্তব্য করেছে:

b=strptime(scan(,""),"%Y-%m-%dT%H") #Takes stdin and converts into POSIXct
i=function(x)as.integer(format(b,x)) #Format the POSIXct and convert it to integer
h=i("%H")      #Format to hours
d=i("%m%d")    #Format to Month/Day
w=d>1100|d<430 #True if winter time, false if summer
f=ifelse
cat(c("Off","Mid","On")[f(i("%u")%in%5:6|h<7|h>19, #If weekend or night
                          1,                       #Case 1
                          f(h>11&h<17,            #Else if mid-day
                             f(w,3,2),             #Case 2 in winter, case 3 in summer
                             f(w,2,3)))])          #else vice versa

উদাহরণ:

> b=strptime(scan(,""),"%Y-%m-%dT%H");i=function(x)as.integer(format(b,x));h=i("%H");d=i("%m%d");w=d>1100|d<430;f=ifelse;cat(c("Off","Mid","On")[f(i("%u")%in%5:6|h<7|h>19,1,f(h>11&h<17,f(w,3,2),f(w,2,3)))])
1: 2014-08-26T15
2: 
Read 1 item
On
> b=strptime(scan(,""),"%Y-%m-%dT%H");i=function(x)as.integer(format(b,x));h=i("%H");d=i("%m%d");w=d>1100|d<430;f=ifelse;cat(c("Off","Mid","On")[f(i("%u")%in%5:6|h<7|h>19,1,f(h>11&h<17,f(w,3,2),f(w,2,3)))])
1: 2014-12-10T15
2: 
Read 1 item
Mid
> b=strptime(scan(,""),"%Y-%m-%dT%H");i=function(x)as.integer(format(b,x));h=i("%H");d=i("%m%d");w=d>1100|d<430;f=ifelse;cat(c("Off","Mid","On")[f(i("%u")%in%5:6|h<7|h>19,1,f(h>11&h<17,f(w,3,2),f(w,2,3)))])
1: 2014-08-26T23
2: 
Read 1 item
Off

1

বাশ, 286

এটি তারিখ প্রোগ্রামটি ব্যবহার করে একটি সাধারণ বাশ উত্তর

d(){ date -d $1 +%$2; };D=$(echo $1|sed 's/\(T..\)$/\1:00/');H=$(d $D H);M=$(d $D m);if [ $(d $D u) -gt 5 ]||[ $H -lt 7 ]||[ $H -gt 18 ];then echo Off;exit;fi;if [ $M -gt 4 ]&&[ $M -lt 11 ];then I=On;O=Mid;else I=Mid;O=On;fi;if [ $H -gt 10 ]&&[ $H -lt 17 ];then echo $I;else echo $O;fi

1

এখানে অন্য এক যায়!

জাভাস্ক্রিপ্ট, 175 171

function f(x){d=new Date(x.slice(0,10));t=x.slice(11,13),m=(x.slice(5,7)+1)%12;return(t<8||t>18||!(d.getUTCDay()%6)?'off':((t<11||t>17)?(m<5?'on':'mid'):(m<5?'mid':'on'))}

Unminified:

function f(x) {
  d = new Date(x.slice(0, 10));
  t = x.slice(11, 13), m = (x.slice(5, 7) + 1) % 12;
  return (t < 8 || t > 18 || !(d.getUTCDay() % 6) ? 'off' : ((t < 11 || t > 17) ? (m < 5 ? 'on' : 'mid') : (m < 5 ? 'mid' : 'on'))
}

কেবলমাত্র দোভাষীদের উপর কাজ করে যেখানে কোনও আইএসও 8601 তারিখের স্ট্রিংটি কনস্ট্রাক্টরে প্রবেশ করা যায় Date

কফিস্ক্রিপ্ট, 192 189

আশ্চর্যজনকভাবে, এটি কফিস্ক্রিপ্টে আর দীর্ঘায়িত হয়নি কারণ সেই ভাষায় কোনও টের্নারি অপারেটর নেই (যা আপনি আমার জাভাস্ক্রিপ্ট থেকে দেখতে পাচ্ছেন, আমি ভারীভাবে নির্ভর করেছি)।

f=(x)->d=new Date(x.slice(0,10));t=x.slice(11,13);m=(x.slice(5,7)+1)%12;return'off'if(t<8||t>18||!(d.getUTCDay()%6));if(t<11||t>17)then(if m<5then'on'else'mid')else(if m<5then'mid'else'on')

0

ES6 - 146

এটি ফাংশন আকারে, কয়েকটি দুষ্টু হ্যাক ব্যবহার করে।

let y,m,d,h,c=s=>[y,m,d,h]=s.split(/[T:-]/g).map(i=>+i),new Date(y,m,d).getDay()in{0:1,6:1}||h<20||8>h?'Off':['Mid','On'][(10>h&&h>16)^(m>5||m<8)]

ব্যাখ্যা:

// These variables are declared outside of the function scope to save
// characters.
let y, // year
    m, // month
    d, // day
    h, // hour
    c = s => // c for check, called as c(isoString)
      [y, m, d, h] = // Assign to fields
        s.split(/[T:-]/g) // Split at delimiters
         .map(i => +i), // Convert all to numbers
                        // Comma used to keep it as a single statement.
      new Date(y, m, d).getDay() // Create Date to get day of week
        in {0:1, 6:1} // Check if it is good (0 = Sunday, 6 = Saturday). It
                      // is shorter to use an object literal than to
                      // do individual checks.
      ||
      h < 20 || 8 > h ? // h is between 7 and 19 (7pm)
       'Off' : // Return 'Off'
       ['Mid','On'][ // Two other outputs
        (10 > h && h > 16) ^ // Check if it is 11-16 (5pm)
        (m > 5 || m < 8)] // Invert that if the month is in summer/fall. Note
                          // that this returns a number, either 1 or 0. This
                          // is an ugly hack using the bitwise xor operator.

0

পাইথন 3 - 352 অক্ষর

import datetime as dt
t=input()
i=int
p=print
a='on'
b='mid'
c='off'
m=i(t[5:7])
h=i(t[11:13])
d=dt.date(i(t[0:4]),m,i(t[8:10])).weekday()
if 5==d or 6==d:p(c)
elif h>=19 and h<7:p(c)
elif m<=10 and m>=4:
 if h>=7 and h<11:p(b)
 if h>=11 and h<17:p(a)
 if h>=17 and h<19:p(b)
else:
 if h>=7 and h<11:p(a)
 if h>=11 and h<17:p(b)
 if h>=17 and h<19:p(a)

1
আপনি পরিবর্তন করা উচিত s=['high','mid','off']কাছে s=['on','mid','off']- না শুধুমাত্র 2 অক্ষর সংরক্ষণ এই আছে, কিন্তু বৈশিষ্ট "চালু" আউটপুট বলেছেন।
সেলিমমে

0

জাভা - 426 309/301? (মন্তব্য দেখুন)

String z(String a){
    DateParser b=new DateParser(a);
    boolean c=b.parseEcmaDate();
    Integer[]d=b.getDateFields();
    GregorianCalendar e=new GregorianCalendar(d[0],d[1]-(c?0:1),d[2]);
    e.setTimeZone(new SimpleTimeZone(0,""));
    return(124>>e.get(7)&1)>0&d[3]>6&d[3]<19?
           d[3]>10&d[3]<17^(1008>>e.get(2)&1)>0?"Mid":"On":"Off";
}

উদাহরণ আউটপুট:

2014-03-02T00   Off
2014-03-02T06   Off
2014-03-02T07   Off
2014-03-02T10   Off
2014-03-02T11   Off
2014-03-02T16   Off
2014-03-02T17   Off
2014-03-02T18   Off
2014-03-02T19   Off
2014-03-02T23   Off
2014-04-02T00   Off
2014-04-02T06   Off
2014-04-02T07   On
2014-04-02T10   On
2014-04-02T11   Mid
2014-04-02T16   Mid
2014-04-02T17   On
2014-04-02T18   On
2014-04-02T19   Off
2014-04-02T23   Off
2014-05-02T00   Off
2014-05-02T06   Off
2014-05-02T07   Mid
2014-05-02T10   Mid
2014-05-02T11   On
2014-05-02T16   On
2014-05-02T17   Mid
2014-05-02T18   Mid
2014-05-02T19   Off
2014-05-02T23   Off

আমি পাইথন জমা দেওয়ার মতো একই এক্সওর ট্রিক ব্যবহার করেছি। আমি +কখনই এটির জন্য একটি ওআর ফাংশন হিসাবে ব্যবহার করেছি weekend OR night

আমার অন্যান্য বড় কৌশল: বিট মাস্ক।

উদাহরণস্বরূপ, কোনও সংখ্যা 2 থেকে 6 এর মধ্যে রয়েছে কিনা তা দেখতে (সোমবার থেকে শুক্রবার) প্রথমে কিছুটা নিদর্শন তৈরি করুন যেখানে আকর্ষণীয় মানগুলি 1:

  6   2 
0b1111100 = 124

তারপরে, এলএসবিতে আকর্ষণীয় বিট পেতে বিট শিফটটি ব্যবহার করুন এবং এটিটি বের করুন:

(124 >> day_of_week) & 1

একইভাবে, আমি মাস এবং ঘন্টা ধরে বিট প্যাটার্নগুলি তৈরি করেছি:

  9    4
0b1111110000 = 1008

      76          76
0b111110000000000001111111 = 16253055
0b000000011111100000000000 = 129024

দুর্ভাগ্যক্রমে, দেখা যাচ্ছে এটি x>y&x<zবেশিরভাগ ক্ষেত্রেই সংক্ষিপ্ত, সুতরাং আমি এটি কিছু জায়গায় ব্যবহার করি নি।

এবং পরিশেষে, এর সাথে কিছুটা হ্যাকারি (অত্যন্ত বাস্তবায়ন নির্ভর) jdk.nashorn.internal.parser.DateParser: কখন parseEcmaDate()কোনও তারিখটিকে পুরোপুরি বিশ্লেষণ করে না (যেমন এটি যখন ঘন্টা পড়বে এবং স্ট্রিংয়ের শেষ প্রান্তে আঘাত করে), এটি মিথ্যা প্রত্যাবর্তন করে।

  • এটি সঠিকভাবে শেষ হলে, তারিখটি একটিতে সংরক্ষণ করা হয় Integer[] (অটো-আনবক্সিং এফটিডাব্লু) , মাসটি বেস -0 (অন্যান্য জাভা শ্রেণীর মতো) হিসাবে নির্ধারিত হয়।
  • যখন এটি মিথ্যা প্রত্যাবর্তন করে, এটি আধ-পথ বাতিল করে দেয় এবং এই ফিক্সিংটি করে না। এটি যাইহোক এটি অ্যারেতে পার্স করা যা কিছু রেখেছিল, যা সহজেই উপলব্ধ। অতএব -(c?0:1)

আমি মনে করি যে জাস্ট ব্যবহার .parse()করেও কার্যকর হতে পারে (৮ টি চরিত্রের শেভিং), তবে আমি বিভিন্ন ইনপুট দিয়ে এটিকে পুরোপুরি পরীক্ষা করে দেখিনি। parseঅভ্যন্তরীণভাবে কল করে parseEcmaDateএবং যদি এটি ব্যর্থ হয়, কল করে parseLegacyDate। পরেরটি অ্যারেটিকে স্ক্রু করে ফেলতে পারে তবে আমি পরীক্ষিত কয়েকটি ক্ষেত্রে এটি ঘটেনি।
মার্ক জেরোনিমাস

-1

কিছুই আমাকে নিজের ভিতরে enteringুকতে বাধা দেয় না, এবং এখানে অন্য সংক্ষিপ্ততর কিছু আছে, তাই…

পিএইচপি 5.4+, 194

<?function f($x){$t=substr($x,11,2);$m=(substr($x,5,2)+1)%12;if($t<8||$t>18||(new DateTime(substr($x,0,10)))->format('N')>5)return'off';return($t<11||$t>17)?($m<5?'on':'mid'):($m<5?'mid':'on');}

স্বাক্ষরিত এবং মন্তব্য করা হয়েছে:

<?
function f($x) {
  $t = substr($x,11,2); // hour
  $m = (substr($x,5,2) + 1) % 12; // month shifted up by 1

  if ($t < 8 || $t > 18 || (new DateTime(substr($x,0,10)))->format('N') > 5)
    return 'off'; // evenings and weekends

  return ($t < 11 || $t > 17)
    ? ($m < 5 ? 'on' : 'mid') // morning and mid-afternoon
    : ($m < 5 ? 'mid' : 'on'); // afternoon
}

এছাড়াও মনে রাখবেন যে date.timezonephp.ini এ নির্দেশিকা নির্ধারণ করা উচিত, অন্যথায় একটি ব্যতিক্রম নিক্ষেপ করা হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.