Information#
Version#
By | Version | Comment |
---|---|---|
noraj | 1.0 | Creation |
CTF#
- Name : ABCTF 2016
- Website : http://abctf.xyz/
- Type : Online
- Format : Jeopardy - Student
- CTF Time : link
Description#
Friday is the best day of the week, and so I really want to know how many Fridays there are in [this][this] file. But, with a twist. I want to know how many Fridays there are one year later than each date. [this]:https://gist.github.com/LiamRahav/0cbf82b8bc3a41deafc0403f1b1dd573 "Gist"
Hint: For example, if you got November 21, 2001, I want to know if November 21, 2002 is a Friday. Also, the answer is in the format ABCTF{}
Note: TGIF stands for Thank God It's Friday
Solution#
- Write a script that parse the date.txt file and count the number of Friday
#!/usr/bin/env python2
import locale
from datetime import datetime
import calendar
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
calendar.setfirstweekday(calendar.MONDAY)
# strptime : https://docs.python.org/2/library/datetime.html#datetime.datetime.strptime
# format : https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior
date_format = '%B %d, %Y'
i = 0
with open('date.txt', 'r') as date_file:
for line in date_file:
date_string = line.rstrip()
date_object = datetime.strptime(date_string, date_format)
if not (calendar.isleap(date_object.year) and date_object.day == 29):
date_object = date_object.replace(year = date_object.year + 1)
if date_object.isoweekday() == 5: # Friday
i += 1
print('ABCTF{' + str(i) + '}')
- This instruction
if not (calendar.isleap(date_object.year) and date_object.day == 29) :
was to avoid bug withFebruary 29, 2004
because 2004 was a leap year and thatFebruary 29, 2005
is not existing so. - So when running my script I got:
python3 date.py
ABCTF{193}
- That's not the good flag but maybe that is because of the 29 of February so I tried
ABCTF{194}
and it's good!