Issue with continous incrementing of unbroken sequence for a entire working day

Morten Engvoldsen mortenengv at gmail.com
Thu Feb 28 23:02:52 CET 2013


Hi,
I think i can use Europe time zone as current local time :

import datetime as dt
>>> import pytz
>>> utc = pytz.timezone("UTC")
>>> norway = pytz.timezone("Europe/Norway")
>>> a = dt.datetime(2008, 7, 6, 5, 4, 3, tzinfo=utc)
>>> b = a.astimezone(norway)

i think this will provide me correct current local time when clock is changed...

On Thu, Feb 28, 2013 at 10:44 PM, Morten Engvoldsen
<mortenengv at gmail.com> wrote:
> Hi,
> Thanks all for suggestion...
>
> I am using current date as current date local time. I think
> datetime.datetime will provide current local date and time, so
> hopefullt the function take care
> if the local clock is changed...
>
> ---------- Forwarded message ----------
> From: Chris Angelico <rosuav at gmail.com>
> To: python-list at python.org
> Cc:
> Date: Fri, 1 Mar 2013 07:52:04 +1100
> Subject: Re: Issue with continous incrementing of unbroken sequence
> for a entire working day
> On Fri, Mar 1, 2013 at 6:23 AM, John Gordon <gordon at panix.com> wrote:
>> In <mailman.2663.1362078015.2939.python-list at python.org> Morten Engvoldsen <mortenengv at gmail.com> writes:
>>
>>> But, if i save the serial_ number value in file, then how  will it decide
>>> to reset the serial number to '1' when the batch  runs on next working day.
>>
>> Name the file so that it contains the date, i.e. "serial_numbers.2013-02-28".
>>
>> If the file exists, you know that the program has already run today and
>> you can read the file to obtain the previous serial number.
>>
>> If the file does not exist, you know the program has not yet run today
>> and you can start the serial number at 1.
>
> Probably overkill; simpler to have just one file and record the date.
> Just be careful of definitions - do you use the current date UTC or
> the current date local time? And be aware of what might happen if the
> local clock is changed.
>
> ChrisA
>
> On Thu, Feb 28, 2013 at 9:41 PM, Morten Engvoldsen <mortenengv at gmail.com> wrote:
>>
>> Hi,
>> Okey i have wrote the below program as you suggested:
>>
>> import time
>> from datetime import date
>>
>> def salesrecord():
>>     serial_number = 0
>>     sales_recrod = {'record1':'product1', 'record2':'product2','record3':'product3'}
>>     for i in sales_recrod:
>>         print sales_recrod[i]
>>
>>         serial_number += 1
>>     print serial_number
>>     fo = open("workfile.txt", "wb")
>>     fo.write(str(serial_number))
>>     fo.close()
>>     with open("workfile.txt", 'r') as f:
>>         serial_number = f.read()
>>     today = date.today()
>>
>>
>>
>> salesrecord()
>>
>>
>> Here i am bit confuse with where i should write the read file function to read the current serial number and date. also when i overwrite the file with current serial number, it will overwrite the date also with current date, in that case how will i  compare the date. Can you please show me in my example how can i achive this..
>>
>>
>> ---------- Forwarded message ----------
>> From: Matt Jones <matt.walker.jones at gmail.com>
>> To: "python-list at python.org" <python-list at python.org>
>> Cc:
>> Date: Thu, 28 Feb 2013 13:11:38 -0600
>> Subject: Re: Issue with continous incrementing of unbroken sequence for a entire working day
>> Store the day as well as the serial_number in your file.  If the day is the same as today's day, use the serial_number, if not, use 1.  At the end of you program write the current day and serial_number.
>>
>> Matt Jones
>>
>>
>> On Thu, Feb 28, 2013 at 1:00 PM, Morten Engvoldsen <mortenengv at gmail.com> wrote:
>> Hi,
>> thanks for youe suggestion. I think i will go for your second option:
>>
>> # Runs this loop until killed
>> while True
>> <do some stuff: clean serial_number, if day changed, calculate salesrecord etc.>
>>
>> serial_number = salesrecord(serial_number)
>>
>>
>> But, if i save the serial_ number value in file, then how  will it decide to reset the serial number to '1' when the batch  runs on next working day. What condition can be good, so that next day when the batch runs, it will know it has to reset the value 1.  Also my batch will not automatcilly run whole day, this is user's decision how many times he wants to run the batch in a day. Can you elebrate more how can i do that ...
>>
>> ---------- Forwarded message ----------
>> From: Morten Engvoldsen <mortenengv at gmail.com>
>> Date: Thu, Feb 28, 2013 at 5:31 PM
>> Subject: Issue with continous incrementing of unbroken sequence for a entire working day
>> To: python-list at python.org
>>
>>
>> Hi team,
>> I need to run a batch of sales records and  the batch has serial_number filed to store the serial number of the sales record. The serial number should be set to  1 everyday when the batch runs first time in a day and the maximum serial number could be 1000.
>>
>> So when the batch runs first time in a day and if it has 10 records, so the last serial number will be 10. And when the batch runs 2nd time in same day, the serial number should start from 11.  In this way serial_number will increment as an unbroken series throughout the entire working day. The next day when the batch runs first time the serial number will reset to 1.
>>
>> Now this could be sample code how the program can count the sequence for a batch:
>>
>> def salesrecord():
>>     serial_number = 1
>>     for i in selesrecord:
>>         print first_sales_record
>>         serial_number += 1
>>         print serial_number
>>
>> salesrecord()
>>
>> So if the batch has 10 records and last serial number of first batch is 10, then when the batch runs second time in the same day, how the 'serial_number' will get the value of 10 and then continue the serial number for the same day,  then for next day again the serial number will start from 1.
>>
>> Can you let me know how can i achive this in python? As i am in learning phase of python, can you let me know what would be good approach to do this in python.
>>



More information about the Python-list mailing list