Python中timedate对象之间的秒差

Python中timedate对象之间的秒差,python,datetime,anaconda,Python,Datetime,Anaconda,我有下面一段代码,它可以根据Excel电子表格中的实际时间和日期以及日落/日出时间和日期更改Windows 10上的背景图像 from datetime import datetime import pandas import ctypes file_path = "myfile.xlsx" data = pandas.read_excel(file_path, header=0) #Header on line 0 #Today as day number in ref

我有下面一段代码,它可以根据Excel电子表格中的实际时间和日期以及日落/日出时间和日期更改Windows 10上的背景图像

from datetime import datetime
import pandas
import ctypes

file_path = "myfile.xlsx"
data = pandas.read_excel(file_path, header=0) #Header on line 0

#Today as day number in reference to 1st of Jan
day = datetime.now().timetuple().tm_yday

#Today's parameters
#sr and ss are column names in the Excel spreadsheet
#Minus 1 to account for 0 based indexing
**sunrise = data["sr"][day-1]
sunset = data["ss"][day-1]** 

#Time right now
**now = datetime.now().time()**

#Setting up the day_night variable depending on the now variable
if now > sunrise and now < sunset:
    day_night = 'day'
else:
    day_night = 'night'

#The path to the wallpapers being used
path = 'C:\\wallpapers\\'+ day_night +'.jpg'
SPI_SETDESKWALLPAPER = 20

#Function to change the wallpaper
def changeBG(path):
    ctypes.windll.user32.SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, path, 3) #SystemParametersInfoW for x64 architecture

changeBG(path)

最直接的方法是手动将时间转换为秒:

from datetime import datetime, timedelta, time


def seconds_in_time(time_value: time):
    return (time_value.hour * 60 + time_value.minute) * 60 + time_value.second


# Examples of time objects
t1 = datetime.now().time()
t2 = (datetime.now() + timedelta(minutes=2)).time()

print(seconds_in_time(t2) - seconds_in_time(t1))  # 120

不确定有没有更好的方法,只要你使用
时间
对象。

你看到错误了吗?我的错了。我还处于起步阶段,仍然缺少基本的东西,包括错误阅读。显然,Excel电子表格的路径有错误。我修正了这个问题并编辑了我的帖子,以显示相关的错误。谢谢正是我想要的!工作得很有魅力,非常感谢!
from datetime import datetime, timedelta, time


def seconds_in_time(time_value: time):
    return (time_value.hour * 60 + time_value.minute) * 60 + time_value.second


# Examples of time objects
t1 = datetime.now().time()
t2 = (datetime.now() + timedelta(minutes=2)).time()

print(seconds_in_time(t2) - seconds_in_time(t1))  # 120