问题多于在Python中使用Unix

时间:2017-11-13 19:52:38

标签: python unix unix-timestamp

所以我一直在编写一个脚本来计算当前时间接近的季节性事件,但我遇到了一些关于如何实际检查的问题。在我得到某人说 - "哟之前,你知道有一些更容易的方法可以通过使用while循环来开始吗?!" - 我知道,但那不是我的要求。我只想知道是否有任何方法可以让函数正常工作。

import datetime
yearlist = []
monthlist = []
daylist = []
holidaylist = []
#all of the time lists correspond to the ammount of years since 1970 - so, for instance, if you type that you were born in 2003, the number of seconds, displayed here
#will be yearlist[33], or 1041379200 seconds.
yearlist.append(0)#1970
yearlist.append(31536000)
yearlist.append(63072000)
yearlist.append(94694400)
yearlist.append(126230400)
yearlist.append(157766400)
yearlist.append(189302400)
yearlist.append(220924800)
yearlist.append(252460800)
yearlist.append(283996800)
yearlist.append(315532800)
yearlist.append(347155200)
yearlist.append(378691200)
yearlist.append(410227200)
yearlist.append(441763200)
yearlist.append(473385600)
yearlist.append(504921600)
yearlist.append(536457600)
yearlist.append(567993600)
yearlist.append(599616000)
yearlist.append(631152000)
yearlist.append(662688000)
yearlist.append(694224000)
yearlist.append(725846400)
yearlist.append(757382400)
yearlist.append(788918400)
yearlist.append(820454400)
yearlist.append(852076800)
yearlist.append(883612800)
yearlist.append(915148800)
yearlist.append(946684800)
yearlist.append(978307200)
yearlist.append(1009843200)
yearlist.append(1041379200)
yearlist.append(1072915200)
yearlist.append(1104537600)
yearlist.append(1136073600)
yearlist.append(1167609600)
yearlist.append(1199145600)
yearlist.append(1230768000)
yearlist.append(1262304000)
yearlist.append(1293840000)
yearlist.append(1325376000)
yearlist.append(1356998400)
yearlist.append(1388534400)
yearlist.append(1420070400)
yearlist.append(1451606400)
yearlist.append(1483228800)
yearlist.append(1514764800)
yearlist.append(1546300800)
yearlist.append(1577836800)
yearlist.append(1609459200)
yearlist.append(1640995200)
yearlist.append(1672531200)
yearlist.append(1704067200)
yearlist.append(1735689600)
yearlist.append(1767225600)
yearlist.append(1798761600)
yearlist.append(1830297600)
yearlist.append(1861920000)
yearlist.append(1893456000)
yearlist.append(1924992000)
yearlist.append(1956528000)
yearlist.append(1988150400)
yearlist.append(2019686400)
yearlist.append(2051222400)
yearlist.append(2082758400)
yearlist.append(2114380800)

monthlist.append(0)#january
monthlist.append(2592000)#february
monthlist.append(5184000)#march
monthlist.append(7776000)#arpril
monthlist.append(10368000)#may
monthlist.append(12960000)#june
monthlist.append(15552000)#july
monthlist.append(18144000)#august
monthlist.append(20736000)#september
monthlist.append(23328000)#october
monthlist.append(25920000)#november
monthlist.append(28512000)#december


daylist.append(0)#1
daylist.append(86400)#2
daylist.append(172800)#3
daylist.append(259200)#4
daylist.append(345600)#5
daylist.append(432000)#6
daylist.append(518400)#7
daylist.append(604800)#8
daylist.append(691200)#9
daylist.append(777600)#10
daylist.append(864000)#11
daylist.append(950400)#12
daylist.append(1036800)#13
daylist.append(1123200)#14
daylist.append(1209600)#15
daylist.append(1296000)#16
daylist.append(1382400)#17
daylist.append(1468800)#18
daylist.append(1555200)#19
daylist.append(1641600)#20
daylist.append(1728000)#21
daylist.append(1814400)#22
daylist.append(1900800)#23
daylist.append(1987200)#24
daylist.append(2073600)#25
daylist.append(2160000)#26
daylist.append(2246400)#27
daylist.append(2332800)#28
daylist.append(2419200)#29
daylist.append(2505600)#30
daylist.append(2592000)#31

#holiday list
holidaylist.append(30931200)#christmas

file = open("data.txt","a")
file.write("/Test write." + "\n")
time.sleep(2)
seconds=time.time()
print(seconds)
timedate=datetime.datetime.fromtimestamp(seconds).strftime('%Y-%m-%d %H:%M:%S:')
print(timedate)
file.write(timedate +"\n")
#time added

print("Hello, and welcome to the feel better about your life card generator - perfect for all of the depressives in your life.")
time.sleep(1)
name=input("OK, first things first. Have a name? ")
if name=="no":
    print("...")
    time.sleep(2)
    print("Oh.")
else:
    print(name + "? Jeez... I feel sorry for you.")
file.write("name = " + name + "\n")
    #check if time added





print("What about your Birthday - I'll be shocked if you don't have one!")
year=input("What was the year? ")
#year count starts here, btw
if year=="1970":
    birthyear=yearlist[0]+yearlist[0]
elif year=="1971":
    birthyear=yearlist[0]+yearlist[1]
elif year=="1972":
    birthyear=yearlist[0]+yearlist[2]
elif year=="1973":
    birthyear=yearlist[0]+yearlist[3]
elif year=="1974":
    birthyear=yearlist[0]+yearlist[4]
elif year=="1975":
    birthyear=yearlist[0]+yearlist[5]
elif year=="1976":
    birthyear=yearlist[0]+yearlist[6]
elif year=="1977":
    birthyear=yearlist[0]+yearlist[7]
elif year=="1978":
    birthyear=yearlist[0]+yearlist[8]
elif year=="1979":
    birthyear=yearlist[0]+yearlist[9]
elif year=="1980":
    birthyear=yearlist[0]+yearlist[10]
elif year=="1981":
    birthyear=yearlist[0]+yearlist[11]
elif year=="1982":
    birthyear=yearlist[0]+yearlist[12]
elif year=="1983":
    birthyear=yearlist[0]+yearlist[13]
elif year=="1984":
    birthyear=yearlist[0]+yearlist[14]
elif year=="1985":
    birthyear=yearlist[0]+yearlist[15]
elif year=="1986":
    birthyear=yearlist[0]+yearlist[16]
elif year=="1987":
    birthyear=yearlist[0]+yearlist[17]
elif year=="1988":
    birthyear=yearlist[0]+yearlist[18]
elif year=="1989":
    birthyear=yearlist[0]+yearlist[19]
elif year=="1990":
    birthyear=yearlist[0]+yearlist[20]
elif year=="1991":
    birthyear=yearlist[0]+yearlist[21]
elif year=="1992":
    birthyear=yearlist[0]+yearlist[22]
elif year=="1993":
    birthyear=yearlist[0]+yearlist[23]
elif year=="1994":
    birthyear=yearlist[0]+yearlist[24]
elif year=="1995":
    birthyear=yearlist[0]+yearlist[25]
elif year=="1996":
    birthyear=yearlist[0]+yearlist[26]
elif year=="1997":
    birthyear=yearlist[0]+yearlist[27]
elif year=="1998":
    birthyear=yearlist[0]+yearlist[28]
elif year=="1999":
    birthyear=yearlist[0]+yearlist[29]
elif year=="2000":
    birthyear=yearlist[0]+yearlist[30]
elif year=="2001":
    birthyear=yearlist[0]+yearlist[31]
elif year=="2002":
    birthyear=yearlist[0]+yearlist[32]
elif year=="2003":
    birthyear=yearlist[0]+yearlist[33]
elif year=="2004":
    birthyear=yearlist[0]+yearlist[34]
elif year=="2005":
    birthyear=yearlist[0]+yearlist[35]
elif year=="2006":
    birthyear=yearlist[0]+yearlist[36]
elif year=="2007":
    birthyear=yearlist[0]+yearlist[37]
elif year=="2008":
    birthyear=yearlist[0]+yearlist[38]
elif year=="2009":
    birthyear=yearlist[0]+yearlist[39]
elif year=="2010":
    birthyear=yearlist[0]+yearlist[40]
elif year=="2011":
    birthyear=yearlist[0]+yearlist[41]
elif year=="2012":
    birthyear=yearlist[0]+yearlist[42]
elif year=="2013":
    birthyear=yearlist[0]+yearlist[43]
elif year=="2014":
    birthyear=yearlist[0]+yearlist[44]
elif year=="2015":
    birthyear=yearlist[0]+yearlist[45]
elif year=="2016":
    birthyear=yearlist[0]+yearlist[46]
elif year=="2017":
    birthyear=yearlist[0]+yearlist[47]
elif year=="2018":
    birthyear=yearlist[0]+yearlist[48]
elif year=="2019":
    birthyear=yearlist[0]+yearlist[49]
elif year=="2020":
    birthyear=yearlist[0]+yearlist[50]
elif year=="2021":
    birthyear=yearlist[0]+yearlist[51]
elif year=="2022":
    birthyear=yearlist[0]+yearlist[52]
elif year=="2023":
    birthyear=yearlist[0]+yearlist[53]
elif year=="2024":
    birthyear=yearlist[0]+yearlist[54]
elif year=="2025":
    birthyear=yearlist[0]+yearlist[55]
elif year=="2026":
    birthyear=yearlist[0]+yearlist[56]
elif year=="2027":
    birthyear=yearlist[0]+yearlist[57]
elif year=="2028":
    birthyear=yearlist[0]+yearlist[58]
elif year=="2029":
    birthyear=yearlist[0]+yearlist[59]
elif year=="2030":
    birthyear=yearlist[0]+yearlist[60]
else:
    print("Damn, you're getting so old that even unix doesn't support your existence.")
    time.sleep(1)
    print("What else can I say? I'm not gonna make the counter go negative, that'll make me have to re-write most of this.")
    time.sleep(2)
    print("Go on then, leave. You broke it by being old. Congrats.")


time.sleep(1)

month=input("What month? ")
if month=="january":
    birthyearmonth = birthyear+monthlist[0]
    birthmonth = 0 + monthlist[0]
elif month=="february":
    birthyearmonth = birthyear+monthlist[1]
    birthmonth = 0 + monthlist[1]
elif month=="march":
    birthyearmonth = birthyear+monthlist[2]
    birthmonth = 0 + monthlist[2]
elif month=="april":
    birthyearmonth = birthyear+monthlist[3]
    birthmonth = 0 + monthlist[3]
elif month=="may":
    birthyearmonth = birthyear+monthlist[4]
    birthmonth = 0 + monthlist[4]
elif month=="june":
    birthyearmonth = birthyear+monthlist[5]
    birthmonth = 0 + monthlist[5]
elif month=="july":
    birthyearmonth = birthtyear+monthlist[6]
    birthmonth = 0 + monthlist[6]
elif month=="august":
    birthyearmonth = birthyear+monthlist[7]
    birthmonth = 0 + monthlist[7]
elif month=="september":
    birthyearmonth = birthyear+monthlist[8]
    birthmonth = 0 + monthlist[8]
elif month=="october":
    birthyearmonth = birthyear+monthlist[9]
    birthmonth = 0 + monthlist[9]
elif month=="november":
    birthyearmonth = birthyear+monthlist[10]
    birthmonth = 0 + monthlist[10]
elif month=="december":
    birthyearmonth = birthyear+monthlist[11]
    birthmonth = 0 + monthlist[11]
else:
    time.sleep(1)
    print("...of course you mistyped something. Typical.")
    time.sleep(1)
    print("Right, reset the shell - c'mon, this was you're fault.")
#That's the end of the month and year thing, future Laz.

time.sleep(1)
print("So - thus far we've got the year, and month. Logically, next is the day.")
time.sleep(2)
day=input("So, what date was it? ")
#here's the start of the final hurdle, Laz - don't mess this up.
if day=="1":
      birthfull = birthyearmonth+1+daylist[0]
      birthmonthday = birthmonth+daylist[0]
elif day=="2":
      birthfull = birthyearmonth+daylist[1]
      birthmonthday = birthmonth+daylist[1]
elif day=="3":
      birthfull = birthyearmonth+daylist[2]
      birthmonthday = birthmonth+daylist[2]
elif day=="4":
      birthfull = birthyearmonth+daylist[3]
      birthmonthday = birthmonth+daylist[3]
elif day=="5":
      birthfull = birthyearmonth+daylist[4]
      birthmonthday = birthmonth+daylist[4]
elif day=="6":
      birthfull = birthyearmonth+daylist[5]
      birthmonthday = birthmonth+daylist[5]
elif day=="7":
      birthfull = birthyearmonth+daylist[6]
      birthmonthday = birthmonth+daylist[6]
elif day=="8":
      birthfull = birthyearmonth+daylist[7]
      birthmonthday = birthmonth+daylist[7]
elif day=="9":
      birthfull = birthyearmonth+daylist[8]
      birthmonthday = birthmonth+daylist[8]
elif day=="10":
      birthfull = birthyearmonth+daylist[9]
      birthmonthday = birthmonth+daylist[9]
elif day=="11":
      birthfull = birthyearmonth+daylist[10]
      birthmonthday = birthmonth+daylist[10]
elif day=="12":
      birthfull = birthyearmonth+daylist[11]
      birthmonthday = birthmonth+daylist[11]
elif day=="13":
      birthfull = birthyearmonth+daylist[12]
      birthmonthday = birthmonth+daylist[12]
elif day=="14":
      birthfull = birthyearmonth+daylist[13]
      birthmonthday = birthmonth+daylist[13]
elif day=="15":
      birthfull = birthyearmonth+daylist[14]
      birthmonthday = birthmonth+daylist[14]
elif day=="16":
      birthfull = birthyearmonth+daylist[15]
      birthmonthday = birthmonth+daylist[15]
elif day=="17":
      birthfull = birthyearmonth+daylist[16]
      birthmonthday = birthmonth+daylist[16]
elif day=="18":
      birthfull = birthyearmonth+daylist[17]
      birthmonthday = birthmonth+daylist[17]
elif day=="19":
      birthfull = birthyearmonth+daylist[18]
      birthmonthday = birthmonth+daylist[18]
elif day=="20":
      birthfull = birthyearmonth+daylist[19]
      birthmonthday = birthmonth+daylist[19]
elif day=="21":
      birthfull = birthyearmonth+daylist[20]
      birthmonthday = birthmonth+daylist[20]
elif day=="22":
      birthfull = birthyearmonth+daylist[21]
      birthmonthday = birthmonth+daylist[21]
elif day=="23":
      birthfull = birthyearmonth+daylist[22]
      birthmonthday = birthmonth+daylist[22]
elif day=="24":
      birthfull = birthyearmonth+daylist[23]
      birthmonthday = birthmonth+daylist[23]
elif day=="25":
      birthfull = birthyearmonth+daylist[24]
      birthmonthday = birthmonth+daylist[24]
elif day=="26":
      birthfull = birthyearmonth+daylist[25]
      birthmonthday = birthmonth+daylist[25]
elif day=="27":
      birthfull = birthyearmonth+daylist[26]
      birthmonthday = birthmonth+daylist[26]
elif day=="28":
      birthfull = birthyearmonth+daylist[27]
      birthmonthday = birthmonth+daylist[27]
elif day=="29":
      birthfull = birthyearmonth+daylist[28]
      birthmonthday = birthmonth+daylist[28]
elif day=="30":
      birthfull = birthyearmonth+daylist[29]
      birthmonthday = birthmonth+daylist[29]
elif day=="31":
      birthfull = birthyearmonth+daylist[30]
      birthmonthday = birthmonth+daylist[30]
print(birthmonthday)
#Oooh, that was WAY harder to write than the year list.
if name=="admin":
    print("Whoops, I should've removed this - BUT SINCE IT HAS ACTUAL PURPOSE I GUESS NOT")
else:
    datetime1970 = int(seconds - yearlist[47])
    christmasfinal = holidaylist[0] - datetime1970
    print(christmasfinal)


birthactual=datetime.datetime.fromtimestamp(birthfull).strftime('%Y-%m-%d %H:%M:%S:')
print(birthactual)


if birthmonthday>christmasfinal:
    print("Christmas is closer. Also you gotta work on that card")


elif birthmonthday<christmasfinal:
    print("Birthday's closer, ya dingus")

是的,我知道我在这方面很可怕。

是的,这是我的第一个Python项目 - 它确实显示了。

编辑:代码的问题在于它经常告诉我圣诞节更接近,即使提供的日期不是。另外我应该说最后的出生日期并不完美(几天外),但足够接近它对用户来说不重要的程度。很抱歉没有澄清。

1 个答案:

答案 0 :(得分:0)

您没有比较正确的值。 sudo rm -rf .../de~是从年初到用户生日的秒数。 birthmonthday是从现在到圣诞节的秒数。将这些相互比较是没有意义的。如果您想知道哪个距离更近,则需要从christmasfinal中减去birthmonthday(此变量的名称非常奇怪,因为它是2017年开始的秒数,不是1970),并将其与datetime1970进行比较。您还需要使用差异的绝对值,因为一个可能是负数而另一个可能是正数。

christmasfinal