RTCDS1307, Relay and Arduino Uno

Hello, first i want to say that im not good in english, next i've a task from my lecturer that make a scheduling for a system, i use a relay and rtcds1307 and ofcourse arduino, but i got a problem.
in the code i use if statement for the time of schedule, at the first schdeule it doesnt work, my relay just blink and not clicked.. but on the second schdule ot the second statement it works perfectly :o i'lve lost my idea, please help me, i verry need it..

this is the code..

 #include <time.h>
 #include <DS1307.h>
 #include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include "RTClib.h"
#define ONE_WIRE_BUS 5
#define saklarutama 2
#define lampuuv 3
#define pompa 4
#define pemanas 6
#define echopin 9
#define trigpin 8
#define RLY_OFF 1
#define RLY_ON 0
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors (&oneWire);
RTC_DS1307 rtc;
long duration, distance;
float Celcius = 0;

void setup() {
  Serial.begin (9600);
  pinMode (ONE_WIRE_BUS,INPUT);
  pinMode (saklarutama,OUTPUT);
  digitalWrite (saklarutama, RLY_OFF);
  pinMode (lampuuv,OUTPUT);
  digitalWrite (lampuuv, RLY_OFF);
  pinMode (pompa,OUTPUT);
  digitalWrite (pompa, RLY_OFF);
  pinMode (pemanas,OUTPUT);
  digitalWrite (pemanas,RLY_OFF);
  pinMode (trigpin,OUTPUT);
  pinMode (echopin,INPUT);
  DateTime now = rtc.now();
  Wire.begin();
  rtc.begin();
  sensors.begin();
  }
void breakfeast() {
   DateTime now = rtc.now();
if (now.minute()>=59&& now.minute()<= 59){
   digitalWrite(saklarutama,LOW);
   Serial.println ("SYSTEM ON");
  if(distance >5)       digitalWrite (lampuuv, LOW);
  else if (distance <5) digitalWrite (lampuuv,HIGH);
 if(Celcius < 28)
 {
  digitalWrite (pemanas,LOW);
 }
 else if (Celcius >30)
 {
  digitalWrite (pemanas,HIGH); 
   } 
}
else {
    digitalWrite (saklarutama,HIGH);
     digitalWrite(lampuuv,HIGH);
     digitalWrite(pemanas,HIGH);
    Serial.println ("SYSTEM OFF");
}    
  }

  void lunch() {
   DateTime now = rtc.now();
if (now.minute()>=57 && now.minute()<= 57){
   digitalWrite(saklarutama,LOW);
   Serial.println ("SYSTEM ON");
  if(distance >5)       digitalWrite (lampuuv, LOW);
  else if (distance <5) digitalWrite (lampuuv,HIGH);
 if(Celcius < 28)
 {
  digitalWrite (pemanas,LOW);
 }
 else if (Celcius >30)
 {
  digitalWrite (pemanas,HIGH); 
   } 
}
else {
    digitalWrite (saklarutama,HIGH);
     digitalWrite(lampuuv,HIGH);
     digitalWrite(pemanas,HIGH);
    Serial.println ("SYSTEM OFF");
}    
  }

void loop() {
  sensors.requestTemperatures();
  Celcius = sensors.getTempCByIndex(0);
  Serial.print ("Suhu = ");
  Serial.println (Celcius);
  delay (300);

 //jarak
 digitalWrite(trigpin,LOW);
 delayMicroseconds (2);
 digitalWrite(trigpin,HIGH);
 delayMicroseconds (10);
 duration=pulseIn (echopin,HIGH);
 distance = duration/58.2;
 delay(300);
 Serial.print("jarak = ");
 Serial.println(distance);

 //waktu
 DateTime now = rtc.now();
 int tahun=now.year();
 Serial.print ("waktu = ");
 Serial.print(tahun);
 Serial.print("/");
 Serial.print(now.month(),DEC);
 Serial.print("/");
 Serial.print(now.day(),DEC);
 Serial.print("|");
 Serial.print(now.hour(),DEC);
 Serial.print(":");
 Serial.print(now.minute(),DEC);
 Serial.print(":");
 Serial.print(now.second(),DEC);
 Serial.println(" ");
 Serial.println(" ");
 delay(300);
//LampuUV

breakfeast();
lunch();

//if (now.minute()>=58 && now.minute()<= 58){
//   digitalWrite(saklarutama,LOW);
//   Serial.println ("SYSTEM ON");
//  if(distance >5)       digitalWrite (lampuuv, LOW);
//  else if (distance <5) digitalWrite (lampuuv,HIGH);
// if(Celcius < 28)
// {
//  digitalWrite (pemanas,LOW);
// }
// else if (Celcius >30)
// {
//  digitalWrite (pemanas,HIGH); 
//   } 
//}
//else {
//    digitalWrite (saklarutama,HIGH);
//     digitalWrite(lampuuv,HIGH);
//     digitalWrite(pemanas,HIGH);
//    Serial.println ("SYSTEM OFF");
//}
//
// if (now.minute()>= 36 &&now.minute ()<= 28)
//{
//  digitalWrite(saklarutama,LOW);
//  Serial.println ("SYSTEM ON");
//   if(distance >5)       digitalWrite (lampuuv, LOW);
//  else if (distance <5) digitalWrite (lampuuv,HIGH);
// if(Celcius < 28)
// {
//  digitalWrite (pemanas,LOW);
// }
// else if (Celcius >30)
// {
//  digitalWrite (pemanas,HIGH); 
// } 
//}else {
//  
//  digitalWrite (saklarutama,HIGH);
//  digitalWrite(lampuuv,HIGH);
//  digitalWrite(pemanas,HIGH);
//       Serial.println("SYSTEM OFF");
//
//}
}

I've looked at this several times, and found it hard to follow with the pins named for things in another language. If you can translate the pin names into English, and repost the code, more people will be able to follow your code and hopefully one of us can spot the problem.

Please learn to format code or use the "Auto Format" (Ctrl-T) feature of the IDE! The formatting is horrible!

  if (now.minute() >= 59 && now.minute() <= 59) {

That's the same as

  if (now.minute() == 59) {

Was that your intention? You know that this executing during that whole minute, don't you?

Why do you call the routines "lunch" and "breakfast" although they have nothing to do with morning or noon?