我有两个datetime
对象,比如start_date
和end_date
。我想做的是列出datetime
对象的列表。
>>> from datetime import datetime
>>> from dateutil.rrule import rrule, MONTHLY
>>> start_date = datetime(2018, 9, 6, 0,)
>>> end_date = datetime(2018, 11, 26, 23, 59, 59)
>>> list(rrule(MONTHLY, dtstart=start_date, until=end_date))
[datetime.datetime(2018, 9, 6, 0, 0), datetime.datetime(2018, 10, 6, 0, 0), datetime.datetime(2018, 11, 6, 0, 0)]
我可以使用rrule()
来做到这一点,它的日期在不断变化,但我希望它按月进行,并且还包括end_date
,
[
datetime.datetime(2018,9,6,0,0),
datetime.datetime(2018,9,30,23,59),
datetime.datetime(2018,10,1,0,0),
datetime.datetime(2018,10,31,23,59),
datetime.datetime(2018,11,1,0,0),
datetime.datetime(2018,11,26,23,59)
]
我希望不使用pandas或numpy。
答案 0 :(得分:0)
这是如何获取两个范围之间的日期列表。您可以对其进行修改以添加某些日期。
from datetime import datetime
from datetime import timedelta
import calendar
dates = []
start_date = datetime(2018, 9, 6, 0,)
end_date = datetime(2018, 10, 10, 0,)
index_date = start_date
while True:
index_date = index_date
dates.append(index_date)
dayy = calendar.monthrange(index_date.year,index_date.month)
index_date = index_date.replace(day= dayy[1])
if index_date > end_date:
break
dates.append(index_date)
index_date = index_date + timedelta(days=1)
if index_date > end_date:
break
print dates
答案 1 :(得分:0)
尝试一下
static void Main(string[] args)
{
string test = GetCapitalizedInput();
Console.WriteLine("Captured: " + test);
Console.ReadLine();
}
static string GetCapitalizedInput()
{
string input = "";
while (true)
{
var keypress = Console.ReadKey(true); // suppress original output
if (keypress.Key == ConsoleKey.Enter)
{
break;
}
string uppercased = keypress.KeyChar.ToString().ToUpper();
input += uppercased;
Console.Write(uppercased);
}
return input;
}