Jim wrote:
Thank you again to everyone; I greatly appreciate the help. I ended
with essentially what Christian advised and it seems to work fine.
FWIW, below is the rouine (I couldn't figure out how to do it without
the kludgy x variable). The background is that this is a Django
context processor that makes available the time until the next 2:30
because that is when the web site is rebuilt.
I hope the code isn't too much mangled by the online editor,
Jim
.............................................................................
import time, datetime
from django.conf import settings
WARNING_MINS=10 # How many mins before update time should start
warning?
WARNING_SECS=60*WARNING_MINS
def current_time_processor(req):
"""Add current time information to the Context
"""
# Calculate time until the next 2:30 am
x=datetime.datetime(2010,7,23) # actual date doesn't matter?
dt_localtime=x.fromtimestamp(time.time())
Why not:
dt_localtime = datetime.datetime.now()
dt_twothirty=dt_localtime.replace(hour=settings.UPDATE_TIME_HOURS,minute=settings.UPDATE_TIME_MINS,second=0,microsecond=0)
You're changing the time of day, but not the date. You might want to add
a day to the shutdown time if it's earlier than the current time.
dd_diff=dt_twothirty-dt_localtime
secs_until_twothirty=dd_diff.seconds
if secs_until_twothirty<WARNING_SECS:
w='This site shuts down every night at %02d:%02d local time,
to refresh the database. There are fewer than %d minutes until that
shutdown. If you have not completed your work when the site shuts
down then you will lose your work.' %
(settings.UPDATE_TIME_HOURS,settings.UPDATE_TIME_MINS,WARNING_MINS,)
else:
w=None
return {'CURRENT_LOCAL_TIME': time.asctime(time.localtime()),
'TIME_WARNING':w}
--
http://mail.python.org/mailman/listinfo/python-list