20170923線上程式設計之輸入年、月、日輸出這是一年的第幾天
阿新 • • 發佈:2019-01-02
最近的一週的時間一直忙於現場筆試了,線上筆試也都沒怎做,真好今天收到了一個算是比較期待的offer吧,就不想出去跑了,留在酒店休息休息,突然發現今天我居然有5個筆試,索性就做吧,早上10:00-12:00是4399和獵豹的兩場筆試,只好每場筆試分差不多一半的時間了,剛做完的是美麗聯合的筆試,題很簡單不到一小時就做完了,這裡簡單寫一下做的思路吧:大體有兩種方案,一種是直接使用python封裝好的模組函式即可,另一種是先判斷年是否是閏年,之後直接累計每月天數即可,都很簡單。
下面是具體的實現:
#!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:輸入一年的年月日輸出是一年中的第幾天 ''' import datetime import time runnian = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] commonnian = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] def calculate_nth_day(y,m,d): ''' 藉助於python內建的模組直接進行轉化 ''' date=datetime.date(y,m,d) res=int(date.strftime('%j')) print '{0}年{1}月{2}日是{0}年的第{3}天'.format(y,m,d,res) def judge(y): ''' 判斷是否為閏年 ''' if (y % 4 == 0 and y % 100 != 0) or y % 400 == 0: return True else: return False def calculate_nth_day_direct(y,m,d,runnian,commonnian): ''' 比較直接的方法 ''' if judge(y): res=sum(runnian[:m-1])+d else: res=sum(commonnian[:m-1])+d print '{0}年{1}月{2}日是{0}年的第{3}天'.format(y,m,d,res) if __name__ == '__main__': one=raw_input().strip() if one: one_str_list=map(int, one.split(' ')) y,m,d=one_str_list calculate_nth_day(y,m,d) calculate_nth_day_direct(y,m,d,runnian,commonnian)
結果如下:
2017 9 23
2017年9月23日是2017年的第266天
2017年9月23日是2017年的第266天
***Repl Closed***