Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I keep running into the error : The call daytime(datetime.datetime(2015, 6, 5, 7, 0),daycycle) returns None, not True. Implement daytime Read the specification of the

I keep running into the error :

The call daytime(datetime.datetime(2015, 6, 5, 7, 0),daycycle) returns None, not True.

Implement daytime

Read the specification of the function daytime in the module funcs. Implement this function according to its specification.

This function is very similar to sunset from the previous exercise, except that it now asks you to determine whether a datetime object is between sunrise and sunset (e.g. happened during the day). That means you will need to extract both the sunrise and sunset this time and compare them to given time value.

Note that the time value may or may not have a time zone attached to it. If it has a time zone attached, you must give both sunrise and sunset a time zone in order to be able to compare them. The time zone is stored in the daycycle dictionary using the key timezone (that value is a string). If time does not have a time zone, you can assume it has the same time zone as sunrise and sunset.

def daytime(time,daycycle):

"""

Returns True if the time takes place during the day, False otherwise (and returns None if a key does not exist in the dictionary).

A time is during the day if it is after sunrise but before sunset, as indicated by the daycycle dictionary.

A daycycle dictionary has keys for several years (as strings). The value for each year is also a dictionary, taking strings of the form 'mm-dd'. The value for that key is a THIRD dictionary, with two keys "sunrise" and "sunset". The value for each of those two keys is a string in 24-hour time format.

For example, here is what part of a daycycle dictionary might look like:

"2015": {

"01-01": {

"sunrise": "07:35",

"sunset": "16:44"

},

"01-02": {

"sunrise": "07:36",

"sunset": "16:45"

},

...

}

In addition, the daycycle dictionary has a key 'timezone' that expresses the timezone as a string. This function uses that timezone when constructing datetime objects using data from the daycycle dictionary. Also, if the time parameter does not have a timezone, we assume that it is in the same timezone as the daycycle dictionary.

Parameter time: The time to check

Precondition: time is a datetime object

Parameter daycycle: The daycycle dictionary

Precondition: daycycle is a valid daycycle dictionary, as described above

"""

# HINT: Use the code from the previous exercise to get sunset AND sunrise

# Add a timezone to time if one is missing (the one from the daycycle)

try:

tz_cycle = daycycle['timezone']

if time.tzinfo is not None:

year1 = time.strftime('%Y')

date1 = time.strftime('%m-%d')

sunrisetime = daycycle[year1][date1]['sunrise']

sunsettime = daycycle[year1][date1]['sunset']

y = year1 + '-' + date1

y1 = datetime.datetime.strptime(y, '%Y-%m-%d')

y3 = datetime.datetime.strptime(sunrisetime, '%H:%M').time()

y2 = datetime.datetime.combine(y1, y3)

x = y2.isoformat()

y4 = datetime.datetime.strptime(sunsettime, '%H:%M').time()

y5 = datetime.datetime.combine(y1, y4)

x1 = y5.isoformat()

back_sunrise = str_to_time(x, tz_cycle)

back_sunset = str_to_time(x1, tz_cycle)

if back_sunrise < time < back_sunset:

return True

else:

return False

except KeyError:

return None

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Theory Icdt 97 6th International Conference Delphi Greece January 8 10 1997 Proceedings Lncs 1186

Authors: Foto N. Afrati ,Phokion G. Kolaitis

1st Edition

3540622225, 978-3540622222

More Books

Students also viewed these Databases questions

Question

Describe the structural components of a language.

Answered: 1 week ago

Question

How does the body prevents pathogens from entering?

Answered: 1 week ago

Question

How to reverse a Armstrong number by using double linked list ?

Answered: 1 week ago