python如何处理时间字符串?

发布于 2022-09-12 23:09:01 字数 831 浏览 16 评论 0

def salary_cal(OT_date):
    year = int(time.strftime('%Y',time.strptime(OT_date.day ,'%d.%m.%Y'))   )
    mon = int(time.strftime('%m',time.strptime(OT_date.day ,'%d.%m.%Y'))   )
    day = int(time.strftime('%d',time.strptime(OT_date.day ,'%d.%m.%Y'))   )
    global over_time_salary
    if is_workday(datetime.date(year,mon,day)):
        over_time_salary+= salary_before_tax/22/8*(float(OT_date.time))*1.5
    else:
        over_time_salary+= salary_before_tax/22/8*(float(OT_date.time))*2    

如上代码想要实现的是一个加班费计算,平时1.5倍,其他日子2倍。
这是一个爬虫程序的一个函数,因为爬出来的数据格式就是11.03.2020这样的格式。
所以我先把时间格式化一下,然后再按格式提取出来,这样的风格我感觉比较有“面向对象”的感觉,但是套了两层显得繁琐。

直接提取年月日也可以,就直接day=int(list[0:1])即可,但是我总觉得这样做是C语言的风格,过程处理了。。

所以这里问大家两个问题:
1.如果爬虫爬到11.03.2020这样的时间字符串,我这样处理手段是否低级?
2.我这代码写的怎么样啊?我的思路完全是按着C来的,是不是有点落后?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

守护在此方 2022-09-19 23:09:01

我觉得个人用户写python,第一能用,第二以后要改能看得懂,就行了。其他的就随缘了。

from datetime import datetime

def salary_cal(OT_date):
    d = datetime.strptime(OT_date.day ,'%d.%m.%Y')
    # day,month,year=OT_date.split('.')
    # d = datetime(year,month,day)
    global over_time_salary
    base = salary_before_tax/22/8*(float(OT_date.time))
    if is_workday(d): # d.isoweekday() in [...]
        over_time_salary+= base*1.5
    else:
        over_time_salary+= base*2
蹲在坟头点根烟 2022-09-19 23:09:01

直接strptime转成时间类型不就可以了么,为什么要还要把年月日拆出来再装回去?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文