interview
python-handwritten-code
编写 Python 程序判断某个日期是这一年的第几天

Python 手写代码面试题, 编写 Python 程序,判断某个日期是这一年的第几天

Python 手写代码面试题, 编写 Python 程序,判断某个日期是这一年的第几天

QA

Step 1

Q:: 编写 Python 程序,判断某个日期是这一年的第几天

A:: 你可以使用 datetime 模块来实现这个功能。代码如下:

 
from datetime import datetime
 
def day_of_year(date_str):
    date = datetime.strptime(date_str, '%Y-%m-%d')
    return date.timetuple().tm_yday
 
# 示例
print(day_of_year('2023-08-08'))  # 输出: 220
 

Step 2

Q:: 编写一个函数来计算两个日期之间的天数差

A:: 可以使用 datetime 模块的 timedelta 类来实现。代码如下:

 
from datetime import datetime
 
def days_between_dates(date1_str, date2_str):
    date1 = datetime.strptime(date1_str, '%Y-%m-%d')
    date2 = datetime.strptime(date2_str, '%Y-%m-%d')
    delta = date2 - date1
    return delta.days
 
# 示例
print(days_between_dates('2023-08-08', '2024-08-08'))  # 输出: 366
 

Step 3

Q:: 如何将字符串格式的日期转换为 datetime 对象

A:: 使用 datetime 模块的 strptime 方法。代码如下:

 
from datetime import datetime
 
def string_to_datetime(date_str):
    return datetime.strptime(date_str, '%Y-%m-%d')
 
# 示例
print(string_to_datetime('2023-08-08'))  # 输出: 2023-08-08 00:00:00
 

用途

面试这个内容的目的是考察候选人对日期和时间处理的基本理解和操作能力。在实际生产环境中,这些操作在数据处理、日志分析、定时任务、事件管理等场景中经常会用到。例如,在分析用户行为时,需要计算用户在某个时间段内的活动情况;在处理定时任务时,需要确定任务的执行日期和时间等。\n

相关问题

🦆
如何获取当前日期和时间

可以使用 datetime 模块的 now 方法。代码如下:

 
from datetime import datetime
 
def current_datetime():
    return datetime.now()
 
# 示例
print(current_datetime())  # 输出: 当前日期和时间
 
🦆
编写一个函数来计算某个日期之后 n 天的日期

可以使用 datetime 模块的 timedelta 类来实现。代码如下:

 
from datetime import datetime, timedelta
 
def add_days_to_date(date_str, days):
    date = datetime.strptime(date_str, '%Y-%m-%d')
    new_date = date + timedelta(days=days)
    return new_date.strftime('%Y-%m-%d')
 
# 示例
print(add_days_to_date('2023-08-08', 10))  # 输出: 2023-08-18
 
🦆
如何计算两个时间点之间的小时差

可以使用 datetime 模块的 timedelta 类来实现。代码如下:

 
from datetime import datetime
 
def hours_between_times(time1_str, time2_str):
    time1 = datetime.strptime(time1_str, '%Y-%m-%d %H:%M:%S')
    time2 = datetime.strptime(time2_str, '%Y-%m-%d %H:%M:%S')
    delta = time2 - time1
    return delta.total_seconds() / 3600
 
# 示例
print(hours_between_times('2023-08-08 12:00:00', '2023-08-09 12:00:00'))  # 输出: 24.0
 
🦆
编写一个函数来判断一个年份是否为闰年

可以通过判断年份是否能被4整除但不能被100整除,或者能被400整除。代码如下:

 
def is_leap_year(year):
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        return True
    else:
        return False
 
# 示例
print(is_leap_year(2020))  # 输出: True
print(is_leap_year(1900))  # 输出: False