问答

python如何处理时间字符串?

作者:admin 2021-04-09 我要评论

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.da...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
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来的,是不是有点落后?

###

我觉得个人用户写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
###

直接strptime转成时间类型不就可以了么,为什么要还要把年月日拆出来再装回去?
低不低级我不知道,但是你这个2空格缩进和排版看着挺"低级"的

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器