開始時刻と終了時刻を定義し、現在時刻がその間に存在するかどうか確かめるプログラムを思いつきで書いてみたので参考になればと思い載せます。
日付を跨ぐ場合も考慮しました。
const confirmInTime = ({
startHours,
startMinutes,
endHours,
endMinutes,
h,
m,
}: {
startHours: number;
startMinutes: number;
endHours: number;
endMinutes: number;
h: number; // 今の時間
m: number; // 今の分数
}) => {
if (startHours < endHours) {
if (startHours === h) {
return startMinutes <= m;
}
if (endHours === h) {
return m <= endMinutes;
}
return startHours < h && h < endHours;
} else if (startHours === endHours) {
if (startMinutes === endMinutes) {
return startHours === h && startMinutes === m;
} else {
return startHours === h && startMinutes <= m && m <= endMinutes;
}
} else {
if (startHours === h) {
return startMinutes <= m;
}
if (endHours === h) {
return m <= endMinutes;
}
return h > startHours || h < endHours;
}
};