#!/usr/bin/env python
import sys
import logging
from collections import ordereddict
__author__ = 'thomas'
logging.basicconfig(level='debug')
logger = logging.getlogger('main')
defget_current_days_of_year
(year: int, month: int, day: int):
assert
0< month < 13
assert
0< day < 32
assert
1800
<= year <= 9999
# 閏年
if year % 400 == 0
or (year % 4 == 0
and year % 100 != 0):
spec_dict =
else:
spec_dict =
min_month =
max_month = [1, 3, 5, 7, 8, 10, 12]
if (month in min_month and day == 31) or (month == 2
and day > spec_dict.get(month)):
raise valueerror('月份:"{}"與日期"{}"不匹配')
min_dict = dict.fromkeys(min_month, 30)
max_dict = dict.fromkeys(max_month, 31)
month_days = ordereddict(
sorted(min_dict.items() | max_dict.items() | spec_dict.items(),
key=lambda item: item[0])
)# 計算月份所得天數和日子之和
count = 0
for key, value_ in month_days.items():
if month <= key:
break
count += value_
logger.info(count)
count += day
return count
if __name__ == '__main__':
if len(sys.argv) < 2:
logger.error('指令碼執行錯誤,請輸入日期引數, 如 "python get_date_days.py 2016/3/30" ')
exit(1)
value = sys.argv[1]
logger.debug(value)
try:
date = [int(num) for num in value.split('/')]
except valueerror:
raise valueerror('日期 "{}" 輸入錯誤,請輸入類似於 2016/3/30 這樣以斜桿分割的日期'.format(value))
if len(date) != 3:
raise valueerror('日期 "{}" 輸入錯誤,請輸入類似於 2016/3/30 這樣以斜桿分割的日期'.format(value))
days = get_current_days_of_year(*date)
print('這是今年的第{}天,今年還剩餘{}天!'.format(days, 365-days))
小題目練習
設score陣列中儲存8名同學的c語言成績,字串陣列name中儲存同學們的姓名。這兩個陣列中,每名同學的姓名與成績的下標要始終保持一致 例如name i 和score i 表示同一位同學 下標為i 的姓名和c語言成績,否則會張冠李戴 1 輸出按成績排序後的同學的名單 2 輸出按同學姓名排序後的成績單...
c語言小題目練習
題目1 乙個數如果恰好等於它的因子之和,這個數就稱為 完數 例如6 1 2 3.程式設計找出1000以內的所有完數。include int main if sum i return 0 題目2 有一分數序列 2 1,3 2,5 3,8 5,13 8,21 13.求出這個數列的前20項之和。inclu...
面試小題目
public class test class a class b extends a b int i a建構函式被執行了!3haa建構函式被執行了!b建構函式被執行了!3haa建構函式被執行了!1111b建構函式被執行了!19wa package com.yoko.test1 class fath...