欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python計算指定日期是今年的第幾天(三種方法)

 更新時間:2020年03月26日 15:28:38   作者:ddl是第一生產(chǎn)力  
這篇文章主要介紹了Python三種方法計算指定日期是今年的第幾天,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

今天早上和騰訊面試官進(jìn)行了視頻面試,由于音量和網(wǎng)絡(luò)以及我的垃圾電腦的原因,個人感覺黃了...

最后面試官給了我一道簡單的計算題:指定日期是今年的第幾年

由于電腦卡到打字都打不動,我勉勉強(qiáng)強(qiáng)寫了一點,雖然面試官知道了我的想法也了解我的設(shè)備情況,最后沒讓我寫完

但是心里慚愧還是時候補齊了...話不多說回到主題吧

首先是輸入的問題,個人認(rèn)為分別輸入年月份是一件很初級的要求,就實現(xiàn)了形如“2020-3-26”的字符串解析的兩種方法,代碼如下:

def cal_date_str_spilt(date):
 ''''
 處理形如"2020-3-26"
 使用字符串的spilt方法解析
 '''
 _year = int(date.split('-')[0])
 _month = int(date.split('-')[1])
 _day = int(date.split('-')[2])
 return [_year, _month, _day]

def cal_date_str_time(date):
 '''
 使用time庫內(nèi)置函數(shù)strptime(string, format) return struct_time對象
 傳入?yún)?shù):字符串 + 處理格式
 '''
 _date = time.strptime(date, '%Y-%m-%d')
 _year = _date.tm_year
 _month = _date.tm_mon
 _day = _date.tm_mday
 return [_year, _month, _day]

然后判斷是否閏年

def judge_leap_year(year, month):
 # 只有閏年且月份大于2月才加多一天
 if year % 400 == 0 or year % 100 and year % 4 == 0 and month > 2:
  return 1
 else:
  return 0

主函數(shù)

def main():
 date = input("請輸入日期,以'-'分隔:")
 sum_1, sum_2 = 0, 0
 date_list_1 = cal_date_str_spilt(date)
 date_list_2 = cal_date_str_time(date)

 month_day = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
 month_day_lep = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

 sum_1 += sum(month_day[:date_list_1[1] - 1]) + date_list_1[2] + judge_leap_year(date_list_1[0], date_list_1[1])
 sum_2 += sum(month_day[:date_list_2[1] - 1]) + date_list_2[2] + judge_leap_year(date_list_2[0], date_list_2[1])
 print('今天是今年的第' + str(sum_1) + '天')
 print('今天是今年的第' + str(sum_2) + '天')
 
 '''
 這一段是使用了datetime庫的方法,python本身就有處理該類問題的方法
 '''
 _sum = datetime.date(date_list_1[0], date_list_1[1], date_list_1[2])
 sum_3 = _sum.strftime('%j')
 if sum_3[0] == '0' and sum_3[1] == '0':
  print('今天是今年的第' + str(sum_3[-1:]) + '天')
 elif sum_3[0] == '0':
  print('今天是今年的第' + str(sum_3[-2:]) + '天')
 else:
  print('今天是今年的第' + str(sum_3) + '天')

if __name__ == '__main__':
 main()

以下是全部代碼:

import datetime
import time

def cal_date_str_spilt(date):
 ''''
 處理形如"2020-3-26"
 使用字符串的spilt方法解析
 '''
 _year = int(date.split('-')[0])
 _month = int(date.split('-')[1])
 _day = int(date.split('-')[2])
 return [_year, _month, _day]

def cal_date_str_time(date):
 '''
 使用time庫內(nèi)置函數(shù)strptime(string, format) return struct_time對象
 傳入?yún)?shù):字符串 + 處理格式
 '''
 _date = time.strptime(date, '%Y-%m-%d')
 _year = _date.tm_year
 _month = _date.tm_mon
 _day = _date.tm_mday
 return [_year, _month, _day]

def judge_leap_year(year, month):
 # 只有閏年且月份大于2月才加多一天
 if year % 400 == 0 or year % 100 and year % 4 == 0 and month > 2:
  return 1
 else:
  return 0

def main():
 date = input("請輸入日期,以'-'分隔:")
 sum_1, sum_2 = 0, 0
 date_list_1 = cal_date_str_spilt(date)
 date_list_2 = cal_date_str_time(date)

 month_day = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
 month_day_lep = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

 sum_1 += sum(month_day[:date_list_1[1] - 1]) + date_list_1[2] + judge_leap_year(date_list_1[0], date_list_1[1])
 sum_2 += sum(month_day[:date_list_2[1] - 1]) + date_list_2[2] + judge_leap_year(date_list_2[0], date_list_2[1])
 print('今天是今年的第' + str(sum_1) + '天')
 print('今天是今年的第' + str(sum_2) + '天')

 '''
 這一段是使用了datetime庫的方法,python本身就有處理該類問題的方法
 '''
 _sum = datetime.date(date_list_1[0], date_list_1[1], date_list_1[2])
 sum_3 = _sum.strftime('%j')
 if sum_3[0] == '0' and sum_3[1] == '0':
  print('今天是今年的第' + str(sum_3[-1:]) + '天')
 elif sum_3[0] == '0':
  print('今天是今年的第' + str(sum_3[-2:]) + '天')
 else:
  print('今天是今年的第' + str(sum_3) + '天')

if __name__ == '__main__':
 main()

總結(jié)

到此這篇關(guān)于Python三種方法計算指定日期是今年的第幾天的文章就介紹到這了,更多相關(guān)python計算指定日期是今年第幾天內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python直接獲取API傳遞回來的參數(shù)方法

    python直接獲取API傳遞回來的參數(shù)方法

    今天小編就為大家分享一篇python直接獲取API傳遞回來的參數(shù)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python導(dǎo)包模塊報錯的問題解決

    Python導(dǎo)包模塊報錯的問題解決

    這篇文章主要介紹了Python導(dǎo)包模塊報錯的問題解決,文章圍繞主題相關(guān)內(nèi)容詳細(xì)介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-03-03
  • pandas實現(xiàn)滑動窗口的示例代碼

    pandas實現(xiàn)滑動窗口的示例代碼

    本文主要介紹了pandas實現(xiàn)滑動窗口的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python獲取指定時間差的時間實例詳解

    python獲取指定時間差的時間實例詳解

    這篇文章主要介紹了python獲取指定時間差的時間實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 在Linux命令行終端中使用python的簡單方法(推薦)

    在Linux命令行終端中使用python的簡單方法(推薦)

    下面小編就為大家?guī)硪黄贚inux命令行終端中使用python的簡單方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Python folium的實用功能詳解

    Python folium的實用功能詳解

    這篇文章主要為大家詳細(xì)介紹了Python中folium的使用功能,圖層控制、指北針、folium添加js和css、經(jīng)緯網(wǎng)格線(柵格線)等相關(guān)內(nèi)容,感興趣的小伙伴可以了解一下
    2022-12-12
  • pycharm中如何自定義設(shè)置通過“ctrl+滾輪”進(jìn)行放大和縮小實現(xiàn)方法

    pycharm中如何自定義設(shè)置通過“ctrl+滾輪”進(jìn)行放大和縮小實現(xiàn)方法

    這篇文章主要介紹了pycharm中如何自定義設(shè)置通過“ctrl+滾輪”進(jìn)行放大和縮小實現(xiàn)方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Python學(xué)習(xí)之12個常用基礎(chǔ)語法詳解

    Python學(xué)習(xí)之12個常用基礎(chǔ)語法詳解

    這篇文章主要為大家介紹了12個Python小案例,包含了日常開發(fā)中非常實用的語法,快來跟隨小編一起學(xué)習(xí)一下,看看自己都會多少個呢
    2022-02-02
  • Python學(xué)習(xí)小技巧之列表項的拼接

    Python學(xué)習(xí)小技巧之列表項的拼接

    這篇文章主要給大家介紹了Python學(xué)習(xí)小技巧之列表項的拼接的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • Python下劃線命名模式

    Python下劃線命名模式

    下劃線前綴的含義是告知其他程序員:以單個下劃線開頭的變量或方法僅供內(nèi)部使用,該約定在PEP 8中有定義,這篇文章主要介紹了Python下劃線命名模式,需要的朋友可以參考下
    2023-10-10

最新評論