【基础入门题012】给定日期是该年的第几天

简介: 【基础入门题012】给定日期是该年的第几天

【基础入门题】2021.11.08  

给定日期是该年的第几天?



比如:

输入“2020/03/02"或者“2020-03-02”,则输出:62;

输入“2021/03/02"或者“2021-03-02”,则输出:61;

输入“2021/11/08"或者“2021-11-08”,则输出:312;

输入“2021/11-08"或者“2021/11-08”,格式错输出为空。


编程语言:包括但不限于Python

题目来源:派森特给站每日刷题频道


方法一:累加每个月的天数列表


def DaysofYear(strDate):
  Days = [31,28,31,30,31,30,31,31,30,31,30,31]
  if strDate.count('/')==2:
    try: listDate = list(map(int,strDate.split('/')))
    except: listDate = None
  elif strDate.count('-')==2:
    try: listDate = list(map(int,strDate.split('-')))
    except: listDate = None
  else:
    listDate = None
  if listDate:
    year,month,day = listDate
    if year%4==0 and year%100!=0 or year%400==0:
      Days[1] = 29
    return sum(Days[:month-1])+day
  else:
    return None
>>> DaysofYear('2020-03-02')
62
>>> DaysofYear('2021-03-02')
61
>>> DaysofYear('2021/11/08')
312
>>> DaysofYear('2021/11-08')
>>> 



方法二:使用datetime库

def DaysofYear(strDate):
  from datetime import date
  try: d = [int(i) for i in strDate.split('/')]
  except:
    try: d = [int(i) for i in strDate.split('-')]
    except: return None
  if len(d)!=3: return None
  d1 = date(d[0],d[1],d[2])
  d2 = date(d[0],1,1)
  diff = d1 - d2
  return diff.days + 1
>>> DaysofYear('2021-03-02')
61
>>> DaysofYear('2020-03-02')
62
>>> DaysofYear('2021/11/08')
312
>>> DaysofYear('2021/11-08')
>>> 
目录
相关文章
|
12天前
|
数据采集 人工智能 安全
|
8天前
|
编解码 人工智能 自然语言处理
⚽阿里云百炼通义万相 2.6 视频生成玩法手册
通义万相Wan 2.6是全球首个支持角色扮演的AI视频生成模型,可基于参考视频形象与音色生成多角色合拍、多镜头叙事的15秒长视频,实现声画同步、智能分镜,适用于影视创作、营销展示等场景。
625 4
|
8天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
346 164
|
7天前
|
机器学习/深度学习 自然语言处理 机器人
阿里云百炼大模型赋能|打造企业级电话智能体与智能呼叫中心完整方案
畅信达基于阿里云百炼大模型推出MVB2000V5智能呼叫中心方案,融合LLM与MRCP+WebSocket技术,实现语音识别率超95%、低延迟交互。通过电话智能体与座席助手协同,自动化处理80%咨询,降本增效显著,适配金融、电商、医疗等多行业场景。
356 155

热门文章

最新文章