Multiple conditions in IF statement

I’m currently working on a project with the DS3231 RTC module, 2 buttons and a relay.
But somehow the program doesn’t work. I tried multiple variants in the if statement but somehow it doesn’t read the switchvalues.
What am I doing wrong?

#include <DS3231.h>

int Relay = 4;
int Endswitch1 = 11;
int Endswitch2 = 12;

DS3231  rtc(SDA, SCL);
Time t;

const int OnHour = 12;
const int OnMin = 24;
const int OffHour = 12;
const int OffMin = 25;

void setup() {
  Serial.begin(115200);
  rtc.begin();
  pinMode(Relay, OUTPUT);
  digitalWrite(Relay, LOW);
}

void loop() {
  t = rtc.getTime();
  Serial.print(t.hour);
  Serial.print(" hour(s), ");
  Serial.print(t.min);
  Serial.print(" minute(s)");
  Serial.println(" ");
  delay (1000);
  
  if(t.hour == OffHour && t.min == OffMin && (digitalRead(Endswitch2) == LOW) && (digitalRead(Endswitch1) == LOW)){
    digitalWrite(Relay,HIGH);
    Serial.println("LIGHT ON");
    }
    
    else if(t.hour == OffHour && t.min == OffMin && (digitalRead(Endswitch2) == HIGH) && (digitalRead(Endswitch1) == LOW)){
      digitalWrite(Relay,LOW);
      Serial.println("LIGHT OFF");
    }
}

Read the switches once and assign the result to variables.
Print the value of the variables to see if they’re what you expect.

Switches are connected how?
With/without pull-ups?
If without pull-ups where your pinMode in setup for the switches?