Generate list of months between interval in python

后端 未结 10 1180
庸人自扰
庸人自扰 2020-12-08 02:14

I want to generate a python list containing all months occurring between two dates, with the input and output formatted as follows:

date1 = \"2014-10-10\"  #         


        
10条回答
  •  庸人自扰
    2020-12-08 02:49

    Find below my approach to this problem using split and simple modulo-based iterations without importing any special module.

    date1 = "2014-10-10"
    date2 = "2016-01-07"
    
    y0 = int( date1.split('-')[0] ) # 2014
    y1 = int( date2.split('-')[0] ) # 2016
    
    m0 = int( date1.split('-')[1] ) - 1 # 10-1 --> 9 because will be used for indexing
    m1 = int( date2.split('-')[1] ) - 1 # 01-1 --> 0 because will be used for indexing
    
    months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    result = []
    start = m0
    for y in range(y0, y1+1):
        for m in range(start,12):
            result.append( str( months[m  % 12])+'-'+str(y) )
            if y == y1 and (m % 12) == m1:
                break
        start = 0
    
    print result
    

    $ python dates.py

    ['Oct-2014', 'Nov-2014', 'Dec-2014', 'Jan-2015', 'Feb-2015', 'Mar-2015', 'Apr-2015', 'May-2015', 'Jun-2015', 'Jul-2015', 'Aug-2015', 'Sep-2015', 'Oct-2015', 'Nov-2015', 'Dec-2015', 'Jan-2016']
    

提交回复
热议问题