time between now and the next 2:30 am?

Jim jim.hefferon at gmail.com
Fri Jul 23 19:36:43 EDT 2010


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())
 
dt_twothirty=dt_localtime.replace(hour=settings.UPDATE_TIME_HOURS,minute=settings.UPDATE_TIME_MINS,second=0,microsecond=0)
    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}



More information about the Python-list mailing list