Étant donné que je suis incroyablement excité pour l' événement Final Fantasy XV Uncovered , je veux que vous m'écriviez un programme pour me dire quand c'est !!!
L'entrée
Votre entrée de prise sous la forme de HH:MM XDT
, où HH
est un nombre dans la plage 1-12
, MM
est un nombre entre 0-60
et XDT
est un fuseau horaire, avec X
étant l'un de E
(est, UTC-4), C
(central, UTC-5), P
(pacifique, UTC-7), ou M
(montagne, UTC-6). Il s'agit d'une heure supposée PM. Les entrées valides incluent:
1:00 EDT (1 PM Eastern Daylight Time)
4:05 MDT (4:05 PM Mountain Daylight Time)
12:23 PDT (12:23 PM Pacific Daylight Time)
1:10 CDT (1:10 PM Central Daylight Time)
L'entrée peut être considérée comme valide.
Le résultat
Votre programme doit faire ce qui suit:
Convertissez l'heure donnée en PDT et en sortie
It is XX:XX PM PDT.
, oùXX:XX
est l'heure convertie. Notez que vous n'avez pas besoin de gérer les cas où la conversion de l'heure franchirait la frontière AM / PM.Imprimez l'un des éléments suivants:
Si l'heure convertie est antérieure à 18 h 00 HAP, imprimez
X minutes until the pre-show!
en remplaçantX
par le nombre de minutes jusqu'à 18 h 00 HAP.Si l'heure convertie est postérieure ou égale à 18 h 00 HAP et avant 19 h 00 HAP , imprimez
Pre-show started X minutes ago; UNCOVERED is starting in Y minutes!
, oùX
est le nombre de minutes qui se sont écoulées depuis 18 h 00 HAP etY
le nombre de minutes jusqu'à 7 h 00. PM PDT.Si l'heure convertie est postérieure ou égale à 19 h 00 HAP , imprimez
UNCOVERED started X minutes ago!
, oùX
est le nombre de minutes qui se sont écoulées depuis 19 h 00 HAP.
Chaque chaîne imprimée doit être suivie d'une nouvelle ligne.
Notation
C'est le golf de code, donc le programme le plus court gagne.
HH:MM XDT
une faute de frappe? Ça peut l'êtreCST
.2:45 EDT
donc nous devons détecter si l'heure convertie est PM ou AM?CST
était une faute de frappe, et aucun temps ne pourrait traverser la frontière AM / PM. Modifié le message.Réponses:
JavaScript (ES6), 257 octets
la source
Python (335 octets)
Production:
la source
t=raw_input().replace(' ',':').split(':');x='PMCE'.index(t[2][0]);t[0]=int(t[0])+x;t[2]='PDT';print'%s:%s PM %s'%tuple(t);x=t[0]*60+int(t[1]);print['%s minutes until the pre-show!'%(360-x),'Pre-show started %s minutes ago; UNCOVERED is starting in %s minutes!'%((x-360),(420-x)),'UNCOVERED started %s minutes ago!'%(x-420)][(x>360)+(x>420)]
.replace(' ', ':').split(':')
par.replace(*': ').split()
, en économisant 6 octetsLua,
357335332 octetsMerci à @Katenkyo d' avoir coupé 22 octets.
Golfé:
( Essayez-le en ligne )
Non golfé:
la source
h=h+0
, l'ajout de 0 convertira automatiquement le résultat en un nombre. Aussi, est-cen=(...)
obligatoire? ne serait-il pas préférable d'inclure l'utilisation de...
comme suit ->h,m,t=(...):match("(%d+):(%d+) (.)")
, vous ne le réutiliserez pas de toute façon, car vous modifiez ensuite la valeur de l'n
utilisation deh
etm
:)r=(h<6 and n.." minutes until the pre-show!" )or h<7 and "Pre-show started "..m.." minutes ago; UNCOVERED is starting in "..(n+60).." minutes!" or "UNCOVERED started "..(m+(h-7)*60).." minutes ago!"
. Il faudra peut-être le retravailler un peu, mais son utilisation permettra d'économiser beaucoup d'octets. Pour information, la structure d'un ternaire à lua est<condition> and <case true, have to be evaluated to true> or <case false, can be anything>
h,m,t=(...):match("(%d+):(%d+) (.)")h=(h-("PMCE"):find(t))%12+1m=m+0print("It is "..h..":"..m.." PM PDT.")a=" minutes"b="UNCOVERED"n=(6-h)*60-m r=(h<6 and n.." minutes until the pre-show!" )or h<7 and"Pre-show started "..m..a.." ago; "..b.." is starting in "..(n+60)..a.."!"or b.." started "..(m+(h-7)*60)..a.." ago!"end print(r)
est en fait 329 octets;).C, 333 octets
333 octets après la suppression des sauts de ligne inutiles (tous sauf celui après le #define).
la source
PHP,
347328327322 octetsvue éclatée
Fonctionne comme
php script.php HH:MM XDT
. Prend le temps et le fuseau horaire comme$argv
entrées, regexes$argv[1]
dans$i = [HH, MM]
, détermine le fuseau horaire à partir du premier caractère$argv[2]
, calcule combien de minutes après 6PM PDT qui est, puis ternaire leecho
.Pourrait supprimer 2 octets en utilisant
$u=UNCOVERED
, mais ce serait la seule erreur ici et j'aime que cela fonctionne correctement.la source
PowerShell 292 octets
Explication moins golfée
Le littéral pour "il y a" a été supprimé dans le code mais pour l'instant laissé dans l'explication en cas d'autres changements.
la source