Python中timedate对象之间的秒差
我有下面一段代码,它可以根据Excel电子表格中的实际时间和日期以及日落/日出时间和日期更改Windows 10上的背景图像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
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