programming WordClock with IF construction

Hi Guys!

im trying to get my WordClock finally done. got my new RTC in yesterday (other one was DOA :().
i have my time on my serial monitor which is good (feel free to help me out with setting time with a button input). i want to use the serial input of the RTC to make IF constructions ( so, if Hour = 18 > light up the corresponding LEDs). but even when "hour" does not equal 18, the leds for six still light up.

can someone have look at my script. currently i have only one IF in the script. i want to get this working before i proceed.

thanks in advance!

ps. feel free to ask questions if it clarifies.

kind regards,
Tymen

#include <config.h>
#include <ds3231.h>

#include "Wire.h"
#define DS3231_I2C_ADDRESS 0x68
// Convert normal decimal numbers to binary coded decimal

#include <Adafruit_NeoPixel.h>

#define PIN 6
#define NUM_LEDS 89
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);

int het_is[]= {0,1,2,5,6};
int vijf_min[]= {15,16,17,18};
int tien_min[]= {11,12,13,14};
int kwart[]= {20,21,22,23,24};
int over[]= {26,27,28,29};
int voor[]= {35,36,37,38};
int half[]= {31,32,33,34};
int acht[]= {40,41,42,43};
int twee[]= {43,44,45,46};
int zes[]= {47,48,49};
int drie[]= {56,57,58,59};
int elf[]= {54,55,56};
int tien[]= {50,51,52,53};
int zeven[]= {60,61,62,63,64};
int negen[]= {64,65,66,67,68};
int vier[]= {75,76,77,78};
int twaalf[]= {69,70,71,72,73,74};
int een[]= {79,80,81};
int vijf[]= {82,83,84,85};
int uur[]= {86,87,88};

byte decToBcd(byte val)
{
  return( (val/10*16) + (val%10) );
}
// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
  return( (val/16*10) + (val%16) );
}
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  // set the initial time here:
  // DS3231 seconds, minutes, hours, day, date, month, year
  setDS3231time(00,28,18,3,17,8,15);
  
  strip.begin();
  for(int i = 0; i < NUM_LEDS; i++){
  strip.setPixelColor(i,0,0,0);}
  strip.show(); // Initialize all pixels to 'off'
  delay(1000);
  
  
}
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte
dayOfMonth, byte month, byte year)
{
  // sets time and date data to DS3231
  Wire.beginTransmission(DS3231_I2C_ADDRESS);
  Wire.write(0); // set next input to start at the seconds register
  Wire.write(decToBcd(second)); // set seconds
  Wire.write(decToBcd(minute)); // set minutes
  Wire.write(decToBcd(hour)); // set hours
  Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)
  Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)
  Wire.write(decToBcd(month)); // set month
  Wire.write(decToBcd(year)); // set year (0 to 99)
  Wire.endTransmission();
}
void readDS3231time(
byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
  Wire.beginTransmission(DS3231_I2C_ADDRESS);
  Wire.write(0); // set DS3231 register pointer to 00h
  Wire.endTransmission();
  Wire.requestFrom(DS3231_I2C_ADDRESS, 7);
  // request seven bytes of data from DS3231 starting from register 00h
  *second = bcdToDec(Wire.read() & 0x7f);
  *minute = bcdToDec(Wire.read());
  *hour = bcdToDec(Wire.read() & 0x3f);
  *dayOfWeek = bcdToDec(Wire.read());
  *dayOfMonth = bcdToDec(Wire.read());
  *month = bcdToDec(Wire.read());
  *year = bcdToDec(Wire.read());
}
void displayTime()
{
  byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
  // retrieve data from DS3231
  readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,
  &year);
  // send it to the serial monitor
  Serial.print(hour, DEC);
  // convert the byte variable to a decimal number when displayed
  Serial.print(":");
  if (minute<10)
  {
    Serial.print("0");
  }
  Serial.print(minute, DEC);
  Serial.print(":");
  if (second<10)
  {
    Serial.print("0");
  }
  Serial.print(second, DEC);
  Serial.print(" ");
  Serial.print(dayOfMonth, DEC);
  Serial.print("/");
  Serial.print(month, DEC);
  Serial.print("/");
  Serial.print(year, DEC);
  Serial.print(" Day of week: ");
  switch(dayOfWeek){
  case 1:
    Serial.println("Sunday");
    break;
  case 2:
    Serial.println("Monday");
    break;
  case 3:
    Serial.println("Tuesday");
    break;
  case 4:
    Serial.println("Wednesday");
    break;
  case 5:
    Serial.println("Thursday");
    break;
  case 6:
    Serial.println("Friday");
    break;
  case 7:
    Serial.println("Saturday");
    break;
  }
}
void loop()
{
  
  displayTime(); // display the real-time clock data on the Serial Monitor,
  delay(1000); // every second
  
  {for(int j=0 ; j < 5; j++)  
    {strip.setPixelColor(het_is[j], 128 ,128, 128);
       delay(50);
         strip.show();
    }
  }       
  
  if (byte hour = 18){
    for(int j=0 ; j < 5; j++)  
    {strip.setPixelColor(zes[j], 128 ,128, 128);
       delay(50);
         strip.show();
    }
    }  
}

currently i have only one IF in the script. i want to get this working before i proceed.

This one:

  if (minute<10)

or this one:

  if (second<10)

or this one:

  if (byte hour = 18){

If it is the last one you are referring to, why are you declaring a new variable and assigning it a value in an if statement? Most people would have used:

  if (hour == 18)
  {