【问题标题】:how to check if an input date is a business end of month如何检查输入日期是否为业务月末
【发布时间】:2020-07-01 15:06:07
【问题描述】:

我有一个代码要求用户输入日期:

date_entry = input('Inserisci la data di fine mese del lancio del MAI in formato DD-MM-YYYY: ')
year, month, day = map(int, date_entry.split('-'))
date1 = pd.to_datetime(pd.Series(datetime.date(day, month, year)))

然后我必须检查该日期是否是业务月末,如果是,则代码继续,如果不存在。 我试过这个:

if date1 == BMonthEnd():
    pass
else:
    print("Ricontrolla: " + str(date1) + " non è un fine mese")
    exit(0)

在这里我收到错误,好像我输入了 29-05-2020 代码退出,即使这个日期是业务月底(星期五)。谢谢。路易吉

【问题讨论】:

标签: python-3.x pandas dataframe date datetime


【解决方案1】:

你可以使用rollforward方法来检查你是否得到与date1相同的日期:

import pandas as pd

date1 = pd.to_datetime('28-05-2020', dayfirst=True)

bm_end = pd.tseries.offsets.BMonthEnd()

if date1 == bm_end.rollforward(date1):
    pass
else:
    print("Ricontrolla: " + str(date1) + " non è un fine mese")
    
# prints
# Ricontrolla: 2020-05-28 00:00:00 non è un fine mese

【讨论】:

  • @Luigi87:那么您可能想澄清这个问题。这个答案显示了如何实现一个逻辑来检查给定的输入日期是否等于一个业务月的结束日期。根据结果​​对 DataFrame 进行切片对我来说听起来完全不同。
猜你喜欢
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 2012-01-03
相关资源
最近更新 更多