@@ -117,6 +117,13 @@ def set_time(self, hours: int, minutes: int, seconds: int) -> None:
117117 minutes (int): The minute value to set (0-59).
118118 seconds (int): The second value to set (0-59).
119119 """
120+ if hours < 0 or hours > 23 :
121+ raise ValueError ("Hour value must be between 0 and 23" )
122+ if minutes < 0 or minutes > 59 :
123+ raise ValueError ("Minute value must be between 0 and 59" )
124+ if seconds < 0 or seconds > 59 :
125+ raise ValueError ("Second vaue must be between 0 and 59" )
126+
120127 data = bytes (
121128 [
122129 self ._int_to_bcd (seconds ),
@@ -154,6 +161,15 @@ def set_date(self, year: int, month: int, date: int, weekday: int) -> None:
154161 date (int): The date value to set (1-31).
155162 weekday (int): The day of the week to set (0-6, where 0 represents Sunday).
156163 """
164+ if year < 0 or year > 99 :
165+ raise ValueError ("Year value must be between 0 and 99" )
166+ if month < 1 or month > 12 :
167+ raise ValueError ("Month value must be between 1 and 12" )
168+ if date < 1 or date > 31 :
169+ raise ValueError ("Date value must be between 1 and 31" )
170+ if weekday < 0 or weekday > 6 :
171+ raise ValueError ("Weekday value must be between 0 and 6" )
172+
157173 data = bytes (
158174 [
159175 self ._int_to_bcd (weekday ),
@@ -196,18 +212,18 @@ def set_alarm(
196212 Alarm hour (0-23) or None
197213 Alarm weekday (0-6, 0=Sunday) or None
198214 """
199- # Set alarm mask to check for minute, hour, and weekday match
200- control2 = self ._read_register (Reg .CONTROL2 )[0 ]
201- self ._set_flag (Reg .CONTROL2 , Control2 .ALARM_INT_ENABLE , Flag .SET )
202- self ._write_register (Reg .CONTROL2 , bytes ([control2 ]))
203-
204215 if minute is not None and (minute < 0 or minute > 59 ):
205216 raise ValueError ("Invalid minute value" )
206217 if hour is not None and (hour < 0 or hour > 23 ):
207218 raise ValueError ("Invalid hour value" )
208219 if weekday is not None and (weekday < 0 or weekday > 6 ):
209220 raise ValueError ("Invalid weekday value" )
210221
222+ # Set alarm mask to check for minute, hour, and weekday match
223+ control2 = self ._read_register (Reg .CONTROL2 )[0 ]
224+ self ._set_flag (Reg .CONTROL2 , Control2 .ALARM_INT_ENABLE , Flag .SET )
225+ self ._write_register (Reg .CONTROL2 , bytes ([control2 ]))
226+
211227 data = bytes (
212228 (self ._int_to_bcd (param ) & Alarm .VALUE )
213229 if param is not None
0 commit comments