ฉันทานอาหารกลางวันแล้วหรือยัง


15

คุณรักอาหารกลางวัน อย่างไรก็ตามคุณกำลังลดน้ำหนักและต้องการให้แน่ใจว่าคุณไม่ได้รับประทานอาหารกลางวันสองครั้งในหนึ่งวันโดยไม่ได้ตั้งใจ ดังนั้นคุณต้องสร้างโปรแกรมเพื่อช่วยให้คุณมั่นใจ

อย่างไรก็ตามสิ่งที่ซับซ้อนอย่างหนึ่งคือคุณกินอาหารกลางวันตามกำหนดเวลาที่แปลกมาก เวลาที่คุณทานอาหารกลางวันที่คือMONTH: DAY PM (คุณสามารถใช้ UTC หรือโซนเวลาที่แปลแล้ว) ถูกต้องถ้าวันนี้เป็นวันที่ 14 กรกฎาคมคุณกินอาหารกลางวันเวลา19:14 น .

สำหรับโปรแกรมของคุณคุณต้องใช้วันที่และเวลาปัจจุบัน (ไม่ต้องป้อนข้อมูล) และส่งออกค่าความจริงที่สอดคล้องกันถ้าคุณกินอาหารกลางวันแล้วสำหรับวัน (หรือเป็นเวลาอาหารกลางวันในขณะนี้) หรือค่าเท็จ ถ้าคุณยังไม่ได้

ตัวอย่าง: (เวลาที่คุณรันโปรแกรม => เอาต์พุต)

  • 4 พฤษภาคม 11:35 AM => เท็จ (คุณจะกินอาหารกลางวันเวลา 17.55 น.)
  • 3 มิถุนายน 5:45 PM => เท็จ (คุณจะกินอาหารกลางวันเวลา 18:03 น.)
  • 28 กรกฎาคม 8:30 PM => จริง (คุณกินอาหารกลางวันเวลา 19:28 น.)
  • 15 ธันวาคม 3:25 PM => จริง (คุณกินอาหารกลางวันเวลา 12:15 น.)
  • 29 กุมภาพันธ์ 2:29 PM => จริง (เป็นเวลาอาหารเที่ยง)
  • 12 ตุลาคม 12:00 AM => เท็จ (วันเพิ่งเริ่มต้น)

อ้างอิง:

นาฬิกาทำงานเป็นเวลา 12 ชั่วโมงได้อย่างไร


เราไม่สามารถใช้ UTC แทนได้หรือ
Mr. Xcoder

@ Mr.Xcoder ใช่จริง ๆ แล้วก็โอเค ฉันจะชี้แจง
geokavel

5
ถ้าคุณกินอาหารกลางวันในเวลาที่กำหนดเพียงวันเดียวคุณจะกินมันสองครั้งได้อย่างไร? = p
jpmc26

1
@MarkS อย่างน้อยก็ในศตวรรษนี้
geokavel

3
ทุกคนไม่กินอาหารกลางวันแบบนี้หรือ เป็นแค่ฉันจริง ๆ หรือ
caird coinheringaahing

คำตอบ:


7

Swift 3 , 310 bytes

import Foundation;var n=String(describing:Date());var k=n.startIndex;print(Int(n[n.index(k,offsetBy:5)...n.index(k,offsetBy:6)])!*60+Int(n[n.index(k,offsetBy:8)...n.index(k,offsetBy:9)])!+720<=Int(n[n.index(k,offsetBy:11)...n.index(k,offsetBy:12)])!*60+Int(n[n.index(k,offsetBy:14)...n.index(k,offsetBy:15)])!)

ลองดูสิ!

พิมพ์นี้trueและfalseสำหรับความจริงและความเท็จตามลำดับ

หมายเหตุ : ใช้งานได้จนถึงปี 9999 เวลา 23.55 น. เท่านั้นเนื่องจากใช้ Strings เพื่อเปรียบเทียบวันที่


2
การสลับสายย่อยจะทำให้ฉันเจ็บปวดเมื่อมอง> _ <: P
Downgoat

3

05AB1E , 15 18 ไบต์

žežb‚žf12+ža‚т*+`‹

ลองออนไลน์!

คำอธิบาย

žežb‚žf12+ža‚т*+`‹
že                 # Push current day
  žb               # Push current minute
    ‚              # Wrap to array
     žf12+         # Push current month and add 12 to it
       ža          # Push current hour
         ‚         # Wrap these two to array as well
          т*       # Multiply each element in the second array by 100
            +      # Add both arrays together
             `     # Flatten the resulting array to stack
              ‹    # Is the first item smaller than the second one?

ฉันไม่คิดว่ามันจะใช้งานได้ เพราะเวลา 12:51 น. UTC ตอนนี้และกำลังส่งออก 1
geokavel

Nvm เพิ่งรู้ว่าฉันกำลังตรวจสอบกับฉันไม่ใช่น. แก้ไขที่ราคา 3 ไบต์
Datboi

2

เสียงคู่แปดฟ 61 ไบต์

diff(str2num([(d=datestr(now,'mmddHHMM'))(1:4);d(5:8)]))>1200

ลองออนไลน์!

คำอธิบาย:

ฟังก์ชั่นแรก:

  • now()ส่งคืนเวลาในรูปแบบทศนิยม วงเล็บเป็นทางเลือก
  • datestr แปลงตัวเลขทศนิยมให้เป็นสตริงในรูปแบบที่กำหนดในอาร์กิวเมนต์ที่สอง
  • str2num แปลงสตริงเป็นตัวเลข
  • diff รับความแตกต่างระหว่างตัวเลขสองจำนวน

ชำรุด:

เรารับสิ่งนี้จากกลาง:

diff(str2num([(d=datestr(now,'mmddHHMM'))(1:4);d(5:8)]))>1200

datestr(now,'mmddHHMM'): ครั้งแรกที่เราใช้เวลาปัจจุบันnowเป็น input เพื่อและระบุรูปแบบdatestr mmddHHMMตัวอักษรหมายถึง: mm = month, dd = day, HH = hour, MM = minutesและAMระบุว่าชั่วโมงควรจะอยู่ในรูปแบบ 12 ชั่วโมง ไม่มีตัวคั่นรวมอยู่ด้วยเพื่อให้สั้นที่สุด มันส่งออกd = 07142117ในเวลาของการเขียนคำอธิบายนี้ ฉันจะอ้างถึงส่วนนั้นxนับจากนี้

[(d=x)(1:4);d(5:8)]: เก็บสตริงด้านบนตามdด้วยจากนั้นสร้างอาร์เรย์ที่มีสององค์ประกอบตัวอักษรสี่ตัวแรกจากนั้นตัวอักษร 5-9 สิ่งนี้ให้ :

ans =
0714
2122

ตำแหน่งที่เก็บหมายเลขเป็นสตริงไม่ใช่ตัวเลข เราจะโทรหาผลลัพธ์ด้านบนสำหรับyด้านล่าง

str2num(y)แปลงอาเรย์ของอักขระเป็นตัวเลขโดยที่แต่ละแถวเปลี่ยนเป็นหนึ่งหมายเลข [714; 2122]นี้จะช่วยให้ zเราจะเรียกผลการ

diff(z)>1200รับความแตกต่างระหว่างตัวเลขสองตัวและตรวจสอบว่าเวลาปัจจุบันคือ 1200 สูงกว่าวันที่ปัจจุบันหรือไม่ บัญชีนี้สำหรับ AM / PM สิ่งนี้ทำให้เราได้ผลลัพธ์ที่ต้องการ


ตรวจสอบนี้ถ้าเป็นจริง PM?
michi7x7

มันทำตอนนี้ :)
Stewie Griffin

หาก "mmdd" คือ "1201" และ "HHMM" คือ "1215" สิ่งนี้ควรเป็นความจริงใช่ไหม? ฉันต้องใช้ mod 12 ในเดือนนั้นเพื่อทำสิ่งนั้น
michi7x7

2

Pyth, 22 21 20 ไบต์

<0+g.d7.d5-.d6+12.d4

-1 ไบต์ต้องขอบคุณ @ Mr.Xcoder

ลองนี้สิ!

วิธีเก่า22 22ไบต์

<+`+12.d4.d5+`.d6.d7

ลองมัน!

คำอธิบาย

<0+g.d7.d5-.d6+12.d4
              +12.d4   # Add 12 to the current month to make it PM
          -.d6         # subtract that from the current hour: negative it is too early,
                       # positive when it is past this hour, zero when its the same hour
   g.d7.d5             # Is the minute greater or equal than the day? True=1; False=0
  +                    # Add this to the hour result,
                       # so that 0 can turn positive if minutes are true
<0                     # Is the result larger than 0 ?

จะไม่&g.d6+.d4 12g.d5.d7ทำงานสำหรับ 19 ไบต์หรือไม่ ฉันไม่แน่ใจและยังไม่ได้ทดสอบจริงๆ แต่ ...
Mr. Xcoder

&g.d6+12.d4g.d5.d7จะเท่ากับ 18 จริง ๆ นอกจากนี้ในวิธีการแบบเก่าฉันไม่คิดว่าคุณต้องการ`และนั่นจะกลายเป็นความยาว 18 ไบต์ ฉันไม่รู้ฉันอาจจะผิด
Mr. Xcoder

@ Mr.Xcoder ถ้าคุณใช้แล้วทั้งคู่ต้องเป็นจริงเช่นในรหัส 22:17 ของคุณจะไม่นับหลังจากเวลา 19:15 น. เพราะนาทีเป็นเท็จ ฉันสามารถลบ `` `บางอย่างออกได้ แต่ไม่ใช่ทั้งหมด ขอบคุณที่ช่วยกันส่งทีไบต์
KarlKastor

ตกลงฉันไม่รู้จริง ๆ ว่าถูกต้องฉันยังคงเรียนรู้ Pyth: P
Mr. Xcoder

จากนั้นฉันได้พบวิธีแก้ปัญหาg++720.d5*60.d4+*60.d6.d7อื่น แต่น่าเสียดายอีกต่อไป (25 ไบต์) อย่างไรก็ตามมันอาจเป็นแหล่งของแรงบันดาลใจและฉันคิดว่าฉันควรพูดถึงมัน
Mr. Xcoder

2

C #, 174 ไบต์

using System;public class Program{public static void Main(){Console.WriteLine(DateTime.Now>DateTime.Today.AddHours(DateTime.Today.Month+12).AddMinutes(DateTime.Today.Day));}}

ลองออนไลน์!


ฉันไม่คิดว่าคุณสามารถเพิ่มชั่วโมงและนาทีได้คุณต้องตั้งค่า
ฤดูหนาว

1
สร้างการกระทำที่ไม่ระบุชื่อ ( ()=>...) เป็นAction<bool>บันทึกไบต์ ใช้DateTime.Nowเมื่อเข้าถึงเดือนและวัน โดยทั่วไปpublicไม่จำเป็นต้องมีและProgramอาจเป็นเพียงจดหมายฉบับหนึ่ง ใช้using D=System.DateTime;เพื่อบันทึก bytes.Overall ความคิดที่ดี แต่อาจ golfed มาก ยินดีต้อนรับสู่ PPCG!
TheLethalCoder

@TheLethalCoder ขอบคุณสำหรับคำแนะนำ! นี่เป็นครั้งแรกที่ฉันเล่นกอล์ฟโคด แต่ฉันจะพยายามมากกว่านี้แน่นอน!
pritch90

2

PHP และภาษาอื่น ๆ ที่มีฟังก์ชั่นทั่วไปเหล่านี้: ประมาณ 28 ถึง 29 ไบต์:

echo eval(date('Gi-1199>md')); 

หรืออีกวิธีหนึ่ง

<?=eval(date('Gi-1199>md'))?>

ทั้งสองอย่างจะพิมพ์

อาจมี?1:0ขึ้นอยู่กับการเป็นตัวแทน อาจเป็นไปได้ที่ไบต์จะถูกตัดหากใช้ภาษาที่มีเสียงสะท้อนโดยปริยายหรือไม่มีจุดจบ ';'

เหตุใดเราจึงได้ค่าเป็นตัวแปรและส่วนที่เหลือทั้งหมดเมื่อไม่จำเป็น :)
date()ทำให้ทุกอย่างเป็นตัวอักษรที่ไม่ได้กำหนดไว้ตัวอย่างเช่น7 May 2017 17:22:43ส่งผ่านนิพจน์1722 - 1200 >= 507ไปยัง eval () ไบต์บันทึกโดยเปลี่ยนเป็นเทียบเท่า1722 - 1199 > 507บันทึกไว้โดยเปลี่ยนไปเทียบเท่า

ใครบอกว่า eval ตายไปแล้ว? ;-)


2

Java, 81 ไบต์

n->new Date().after(new Date(){{setHours(getMonth()+13);setMinutes(getDate());}})

ลองออนไลน์!

Ungolfed:

n -> new Date().after(new Date() { //new Date() returns current date
    { //instance initialization
        setHours(getMonth() + 13); //month + 12 hours for PM + 1 because months are 0 indexed
        setMinutes(getDate()());
    }
})

1
จัดการนี้ธันวาคมถูกต้องหรือไม่ ฉันไม่ได้ทำงานกับ Java มานาน แต่ดูเหมือนว่ามันจะส่งวันที่ 1 ธันวาคมถึง 24:01 แทนที่จะเป็นตอนเที่ยง
Mark S.

อย่าลืมที่จะรวมการนำเข้าของคุณjava.util.Dateในการนับไบต์
จา

2

Haskell, 135 129 ไบต์

import Data.Time
x(ZonedTime(LocalTime d(TimeOfDay h m _))_)|(_,x,y)<-toGregorian d=return(mod x 12<h-12&&y<m)
y=getZonedTime>>=x

การคลายออกนี้ค่อนข้างน่ารำคาญบางทีการจัดการสายอักขระก็เหมาะกว่า

// edit: รูปแบบการ์ดปลอดภัย 5 ไบต์


2

Mathematica, 65 64 62 ไบต์

3 โปรแกรม

p=Date[][[#]]&;{60,1}.#&/@(p[4;;5]>=p[2;;3]+{12+p@2~Mod~12,0})

{60,1}.#&/@(#[[4;;5]]>=#[[2;;3]]+{12+#[[2]]~Mod~12,0})&@Date[]

{60,1}.#&/@(#[4;;5]>=#[2;;3]+{12+#@2~Mod~12,0})&[Date[][[#]]&]

เหล่านี้แต่ละไบต์น้อยถ้า นับเป็นไบต์เดียวใน Mathematica

คำอธิบาย

  1. Date[]{y,m,d,h,m,s}ส่งกลับรายการในรูปแบบ ดังนั้น Date[][[4;;5]]เป็นชั่วโมงและนาทีของเวลาปัจจุบัน
  2. p=Date[][[#]]&; ยี่ห้อ pฟังก์ชั่นที่ใช้ในดัชนีที่เราต้องการและให้ส่วนเหล่านั้นของวันที่
  3. {60,1}.#&เป็นฟังก์ชั่นที่ไม่ระบุชื่อที่ใช้ผลิตภัณฑ์ดอทของ{60,1}และอินพุทเพื่อหาวิธีเปรียบเทียบเวลา มันสั้นกว่าหนึ่งไบต์TimeObjectมันเป็นหนึ่งไบต์สั้นกว่า
  4. p@2เทียบเท่ากับp[2]จำนวนเดือน
  5. +{12+p@2~Mod~12,0}เพิ่ม{12,0}ในเดือนและวันที่ที่เราไม่ได้อยู่ในเดือนธันวาคมและเพิ่ม{0,0}อย่างอื่น (ขอบคุณ michi7x7!)
  6. >= เป็นตัวดำเนินการเปรียบเทียบ แต่เราไม่สามารถเปรียบเทียบ {ชั่วโมงนาที} กับ {รายการเดือนที่ปรับแล้ววันที่} ...
  7. /@แมป{60,1}.#&ทั้งสองด้านของความไม่เท่าเทียมกันในวงเล็บดังนั้นเราจึงสามารถเปรียบเทียบเวลาได้อย่างถูกต้อง
  8. สำหรับโปรแกรมที่ขึ้นต้นด้วย{60,1}.#&พวกเขาใช้#เพื่อเป็นตัวแทนของการป้อนข้อมูลไปยังฟังก์ชั่นที่ไม่ระบุชื่อขนาดใหญ่และ&เพื่อบ่งบอกถึงจุดสิ้นสุด
  9. @Date[] ใช้ฟังก์ชั่นใหญ่ในบรรทัด (ซึ่งแยกบางส่วนของรายการ) ไปยังรายการวันที่
  10. [Date[][[#]]&] ใช้ฟังก์ชั่นใหญ่ในบรรทัดของฟังก์ชั่นที่ไม่ระบุชื่ออีกอันหนึ่งซึ่งแยกส่วนของรายการวันที่

โบนัส

ถ้าเรากินอาหารกลางวันระหว่าง 1AM ถึง 12:59 PM เราก็สามารถประหยัดได้ 25 ไบต์ด้วยเพียงแค่ {60,1}.#&[Date[][[#]]]&/@(4;;5>=2;;3)ไบต์ที่มีเพียง

คุณสามารถทดสอบสิ่งเหล่านี้ได้โดยการวางโค้ดลงในกล่องWolfram Cloudและคลิกเกียร์ -> ประเมินเซลล์หรือกด Shift + Enter หรือกด Numpad Enter


ผมเชื่อว่าการบันทึกโบนัสของคุณเป็นจริงเป็นวิธีการแก้ปัญหาที่ถูกต้อง - เป็นโดเมนของคุณครั้งที่ถูกต้อง13:01เพื่อ24:31
เทย์เลอร์สกอตต์

@TaylorScott ขอบคุณสำหรับการจัดรูปแบบรหัส (แม้ว่า colorization ดูเหมือนจะล้มเหลวในบางกรณีที่มีเล่ห์เหลี่ยม) ฉันไม่แน่ใจว่าฉันเข้าใจความคิดเห็นของคุณ ถ้าหากนี่คือเวลา 7:20 น. ในวันที่ 19 กรกฎาคมรหัส "โบนัส" จะบอกว่า "ใช่คุณกินข้าวเที่ยง" แม้ว่าจะอยู่ห่างจากเวลา 19.20 น. ก็ตาม OP มีกรณีทดสอบใน AM ดังนั้นฉันคิดว่านี่ทำให้ไม่ถูกต้อง ฉันพลาดอะไรไป
Mark S.

@Mark_S ฉันเห็น - ด้วยเหตุผลบางอย่างที่ฉันได้อ่านว่าเป็น 23:59 น. มากกว่า 12:59 - ไม่มีวิธีรัดกุมในการเพิ่มรหัสโบนัส 12 ชั่วโมงหรือไม่
Taylor Scott

1
@TaylorScott เอาล่ะเราต้องการเพิ่ม 12 ชั่วโมงเป็นเดือนส่วนใหญ่ดังนั้นสำหรับเดือนมกราคมถึงเดือนพฤศจิกายนเราสามารถแทนที่Date[]โบนัสด้วย (Date[]+{0,12,0,0,0,0})(อาจมีวิธีในการเล่นกอล์ฟ แต่12UnitVector[6,2]มีความยาวมากกว่า) ปัญหาคือว่าในวันเช่นวันที่ 3 ธันวาคมที่เรากินอาหารกลางวันที่ 00:03, 24:03 ไม่ได้ดังนั้นเราจึงจำเป็นต้องเพิ่ม 12 ยกเว้นในเดือนธันวาคม สิ่งนี้ต้องการให้เรา 1. มองภายในวันที่เพื่อดูว่าเราอยู่ในเดือนธันวาคมหรือไม่ (ตามคำตอบของฉัน) หรือ 2. เขียนฟังก์ชันที่ตรวจสอบว่าเราไปที่ 24: XX หลังจากความจริงซึ่งจะเป็น อีกต่อไป
มาร์คเอส.

1
@MarkS 12 + Mod [# [[2]], 12]?
michi7x7


1

Python 3 , 104 ไบต์

from datetime import*
n=datetime.now();print(n>=n.replace(hour=[0,n.month+12][n.month<12],minute=n.day))

ลองออนไลน์!

การทดสอบวันที่และเวลาทั้งหมด ฉันแทนที่วันที่ 29 กุมภาพันธ์เป็นวันที่ 28 กุมภาพันธ์เพราะวันที่ไม่ถูกต้องไม่ทำงาน


1

R , 92 ไบต์

library(lubridate)
d=Sys.Date()
cat(Sys.time()>ymd_hm(paste0(d,'-',month(d)+12,'-',day(d))))

ลองออนไลน์!

                                   month(d)+12,'-',day(d)    # get month and day and paste into a string, adding 12 hours for pm
                      paste0(d,'-',                      )   # add current date to beginning
               ymd_hm(                                    )  # turn whole thing into a date-time object
cat(Sys.time()>                                            ) # compare with current date-time and print

1

q, 31 ไบต์

x>12:+"T"$(-3!x:.z.P)5 6 13 8 9

ตัวอย่าง:

q).z.P
2017.07.16D19:35:26.654099000
q)x>12:+"T"$(-3!x:.z.P)5 6 13 8 9
1b

ล่ามมีให้ที่นี่

เวอร์ชั่นเก่า

{x:.z.p;x>"T"$":"sv"0"^2$/:string 12 0+`mm`dd$\:x}`

2$แผ่นจะหัน6ไป6_มากกว่า_6ดังนั้นคุณต้องการ(-2)$แต่คุณสามารถยกเลิกการออกเหล่านั้นเป็นพิเศษ 3 ตัวอักษรโดยใช้ชวเลขสำหรับstring เป็น($)... หรือแทนการใช้ $ เพื่อแผ่นย่อหน้า "0" และจากนั้นจะใช้เวลาในช่วง 2 chars: {x:.z.P;x>"T"$":"sv -2#'"0",'($)12 0+mm dd$\:x}สำหรับ 49 bytes
streetster

จุดที่ดี ต้นฉบับไม่ถูกต้อง ฉันเพิ่มรุ่นที่สั้นกว่านี้
skeevey

1

JavaScript, 75 ไบต์

t=new Date,t.setHours(13+t.getMonth()),t.setMinutes(t.getDate()),new Date>t

ซึ่งเทียบเท่ากับรหัสต่อไปนี้:

function didEat()
  const d = new Date()
  d.setHours(12 /* PM */ + d.getMonth() + 1)
  d.setMinutes(d.getDate())
  return new Date > d
}
didEat()

last t can be used while modify
l4m2

t=new Date,t.setMinutes(t.getDate(t.setHours(13+t.getMonth(n=+t))))<n
l4m2

1

Python 2.7, 130 bytes

from datetime import*
a=str(datetime.now()).split()
print int(''.join(a[0].split('-')[1:]))+1200<int(''.join(a[1].split(':')[:2]))

Try it online

Note: There may be a problem with the sign. Please excuse that because I follow IST and it's quite confusing because it's 2:28am here now. Do correct the sign if you feel it is wrong.


1

Perl, 45 chars

sub c{@a=gmtime;$a[2]-12>$a[4]&&$a[1]>=$a[3]}

If I have to provide a method, it will be 45 for sub c{...}. If I have to print say ()||0 even makes it 47. I will add that in if it's a requirement.


I believe that because the original question specifies you need to make a program to help you make sure that snippets are not allowed - that said either of your listed output methods are generally considered valid
Taylor Scott

1
fair enough, I will provide output then. Thanks for editing, I was not aware of the proper language tag! I was thinking perl -e was generally ok, but others have provided functions, so I edited it in.
bytepusher

1

Excel, 52 50 49 bytes

=TIME(MONTH(NOW())+12,DAY(NOW()),0)<=MOD(NOW(),1)

Input is this formula in any cell.
Output is either TRUE or FALSE.

Excel's built-in date handling helps a lot.
The TIME function returns the day's lunch time as a time value which, if converted to a date, would use Jan 0, 1900. We compare it against NOW - TODAY so we get the current time with a date value of 0 or Jan 0, 1900.

Saved 2 bytes thanks to Wernisch
Saved 1 byte thanks to Adam


Do you need the extra braces around NOW()-TODAY() ?
Wernisch

@Wernisch No, as it turns out. I had presumed it would evaluate the inequality before the subtraction but I didn't check it. Thanks.
Engineer Toast

I think you can save a byte by changing from now()-today() to mod(now(),1)
Adam

0

JavaScript, 62 chars

f=
_=>[,m,d,H,M]=(new Date).toISOString().split(/\D/),+m+12+d<=H+M

Test code below:


0

Excel VBA, 55 Bytes

Anonymous VBE immediate window function that takes no input and outputs a Boolean value representing whether I've had lunch to the VBE immediate window

n=Now:?TimeValue(n)>TimeValue(Month(n)&":"&Day(n)&"PM")

0

Ruby, 64+7 = 71 bytes

Requires the -rtime flag because for some reason Time::parse is like, the only function requires it out of the entire Time module.

p Time.parse("#{t=Time.now}"[/.+-(..)-(..) /]+[$1,$2]*?:+'pm')<t

Try it online! (it also prints out the current time)


0

Julia 0.6.0 99 bytes

a=split(string(Dates.today()),"-");(Dates.hour(now())<parse(a[2]))&&Dates.minute(now())<parse(a[3])

Julia has built in function to use the clock/calendar of the computer. My computer is running on ubuntu 16.04 and already with 12 hour clock, so I can't say if what I did works with other machine using different clock, but seems to works on my machine.


0

JavaScript ES6, 70 Bytes

_=>(h=x=>new Date().toJSON().substr(x,5).replace(/\D/,0))(5)+12e3<h(11)

Maybe not that right on some milliseconds...


0

Matlab, 241 bytes

dt=datestr(now,'mm/dd');
dt(2)
dt(4:5)
CrctLchTm=[' ' dt(2) ':' dt(4:5) ' PM']
CrntTm=datestr(now,'HH:MM PM')
CrntTm(7)=='A'
if ans==1
    Lch='false'
else
    CrctLchTm=str2num([CrctLchTm(2) CrctLchTm(4:5)])
    CrntTm=str2num([CrntTm(2) CrntTm(4:5)])
    CrntTm<CrctLchTm
    if ans==1
        Lch='false'
    else
        Lch='true'             
    end    
end

Explanation: First, I obtain the date as a string. Then, I isolate the month and day. Since the problem states that it is always interpreted as PM, then I automatically write false if the time is in AM. If the current time is in PM, then I continue on and just compare the numbers of the time.

Note: I've formatted it slightly differently here for readability.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.