[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.22.27.222: ~ $
#! /usr/bin/env python

# Calculate your unbirthday count (see Alice in Wonderland).
# This is defined as the number of days from your birth until today
# that weren't your birthday.  (The day you were born is not counted).
# Leap years make it interesting.

import sys
import time
import calendar

def main():
    if sys.argv[1:]:
        year = int(sys.argv[1])
    else:
        year = int(raw_input('In which year were you born? '))
    if 0 <= year < 100:
        print "I'll assume that by", year,
        year = year + 1900
        print 'you mean', year, 'and not the early Christian era'
    elif not (1850 <= year <= time.localtime()[0]):
        print "It's hard to believe you were born in", year
        return

    if sys.argv[2:]:
        month = int(sys.argv[2])
    else:
        month = int(raw_input('And in which month? (1-12) '))
    if not (1 <= month <= 12):
        print 'There is no month numbered', month
        return

    if sys.argv[3:]:
        day = int(sys.argv[3])
    else:
        day = int(raw_input('And on what day of that month? (1-31) '))
    if month == 2 and calendar.isleap(year):
        maxday = 29
    else:
        maxday = calendar.mdays[month]
    if not (1 <= day <= maxday):
        print 'There are no', day, 'days in that month!'
        return

    bdaytuple = (year, month, day)
    bdaydate = mkdate(bdaytuple)
    print 'You were born on', format(bdaytuple)

    todaytuple = time.localtime()[:3]
    todaydate = mkdate(todaytuple)
    print 'Today is', format(todaytuple)

    if bdaytuple > todaytuple:
        print 'You are a time traveler.  Go back to the future!'
        return

    if bdaytuple == todaytuple:
        print 'You were born today.  Have a nice life!'
        return

    days = todaydate - bdaydate
    print 'You have lived', days, 'days'

    age = 0
    for y in range(year, todaytuple[0] + 1):
        if bdaytuple < (y, month, day) <= todaytuple:
            age = age + 1

    print 'You are', age, 'years old'

    if todaytuple[1:] == bdaytuple[1:]:
        print 'Congratulations!  Today is your', nth(age), 'birthday'
        print 'Yesterday was your',
    else:
        print 'Today is your',
    print nth(days - age), 'unbirthday'

def format((year, month, day)):
    return '%d %s %d' % (day, calendar.month_name[month], year)

def nth(n):
    if n == 1: return '1st'
    if n == 2: return '2nd'
    if n == 3: return '3rd'
    return '%dth' % n

def mkdate((year, month, day)):
    # January 1st, in 0 A.D. is arbitrarily defined to be day 1,
    # even though that day never actually existed and the calendar
    # was different then...
    days = year*365                  # years, roughly
    days = days + (year+3)//4        # plus leap years, roughly
    days = days - (year+99)//100     # minus non-leap years every century
    days = days + (year+399)//400    # plus leap years every 4 centirues
    for i in range(1, month):
        if i == 2 and calendar.isleap(year):
            days = days + 29
        else:
            days = days + calendar.mdays[i]
    days = days + day
    return days

if __name__ == "__main__":
    main()

Filemanager

Name Type Size Permission Actions
.beer.pyo.40009 File 703 B 0644
.eqfix.pyo.40009 File 4.52 KB 0644
.fact.pyo.40009 File 1.14 KB 0644
.find-uname.pyo.40009 File 1.47 KB 0644
.from.pyo.40009 File 749 B 0644
.lpwatch.pyo.40009 File 2.54 KB 0644
.makedir.pyo.40009 File 732 B 0644
.markov.pyo.40009 File 3.93 KB 0644
.mboxconvert.pyo.40009 File 3.17 KB 0644
.morse.pyo.40009 File 4.33 KB 0644
.newslist.pyo.40009 File 7.55 KB 0644
.pi.pyo.40009 File 921 B 0644
.pp.pyo.40009 File 2.28 KB 0644
.primes.pyo.40009 File 921 B 0644
.queens.pyo.40009 File 2.95 KB 0644
.script.pyo.40009 File 1.21 KB 0644
.unbirthday.pyo.40009 File 2.93 KB 0644
.update.pyo.40009 File 2.69 KB 0644
README File 1009 B 0644
beer.py File 459 B 0755
beer.pyc File 703 B 0644
beer.pyo File 703 B 0644
eqfix.py File 6.16 KB 0755
eqfix.pyc File 4.52 KB 0644
eqfix.pyo File 4.52 KB 0644
fact.py File 1.11 KB 0755
fact.pyc File 1.14 KB 0644
fact.pyo File 1.14 KB 0644
find-uname.py File 1.18 KB 0755
find-uname.pyc File 1.47 KB 0644
find-uname.pyo File 1.47 KB 0644
from.py File 874 B 0755
from.pyc File 749 B 0644
from.pyo File 749 B 0644
lpwatch.py File 2.77 KB 0755
lpwatch.pyc File 2.54 KB 0644
lpwatch.pyo File 2.54 KB 0644
makedir.py File 510 B 0755
makedir.pyc File 732 B 0644
makedir.pyo File 732 B 0644
markov.py File 3.51 KB 0755
markov.pyc File 3.93 KB 0644
markov.pyo File 3.93 KB 0644
mboxconvert.py File 3.11 KB 0755
mboxconvert.pyc File 3.17 KB 0644
mboxconvert.pyo File 3.17 KB 0644
morse.py File 4.21 KB 0755
morse.pyc File 4.33 KB 0644
morse.pyo File 4.33 KB 0644
newslist.doc File 2.36 KB 0755
newslist.py File 11.17 KB 0755
newslist.pyc File 7.55 KB 0644
newslist.pyo File 7.55 KB 0644
pi.py File 888 B 0755
pi.pyc File 921 B 0644
pi.pyo File 921 B 0644
pp.py File 3.73 KB 0755
pp.pyc File 2.28 KB 0644
pp.pyo File 2.28 KB 0644
primes.py File 603 B 0755
primes.pyc File 921 B 0644
primes.pyo File 921 B 0644
queens.py File 2.19 KB 0755
queens.pyc File 2.95 KB 0644
queens.pyo File 2.95 KB 0644
script.py File 962 B 0755
script.pyc File 1.21 KB 0644
script.pyo File 1.21 KB 0644
unbirthday.py File 3.07 KB 0755
unbirthday.pyc File 2.93 KB 0644
unbirthday.pyo File 2.93 KB 0644
update.py File 2.69 KB 0755
update.pyc File 2.69 KB 0644
update.pyo File 2.69 KB 0644