Another Time question

I want to write a COUNT UP timer for my hothouse. Basically count the days from when I planted a particular plant/seed.

I did the basics using millis(). For this sketch by question is how to NOT use DELAY and only write to the monitor once the time changes.

//  Crude COUNT UP TIMER for hothouse

//#include <Wire.h>     //Arduino library
//#include <LiquidCrystal_I2C.h>
//LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

// Variables will change :
unsigned long NOW;                          // Storing the current Millis
unsigned long RunningDays;                  // Storing the Running Days
unsigned long RunningHrs;                   // Storing the Running Hrs
unsigned long RunningMin;                   // Storing the Running Min


// Constants that won't change :


void setup()   {
  Serial.begin(9600);                      // initialize serial communication:
  //    lcd.init();                        // initialize the lcd
  //    lcd.backlight();
}     //     ****************************** END SETUP *************************************

void loop()   {
  NOW = millis();
  RunningDays = (NOW / 86400000);                                                      //Determine how many Days in current milis
  RunningHrs  = ((NOW - (RunningDays * 86400000)) / 3600000);                          //Subtract Days in millis and determine how many hours left
  RunningMin  = ((NOW - (RunningDays * 86400000) - (RunningHrs * 3600000)) / 60000);   //Subtract Days & Hrs in millis and determine how many Minutes left

  Serial.print(RunningDays);
  Serial.print(" Days  ");

  Serial.print(RunningHrs);
  Serial.print(" Hrs   ");

  Serial.print(RunningMin);
  Serial.println(" Min.");
  delay(30000);

  //  lcd.setCursor(0,0);                     //Seting cursor position for Days
  // lcd.print(RunningDays);
  // lcd.setCursor(7,0);                      //Setting cursor position for Hrs
  // lcd.print(RunningHrs);
  //lcd.setCursor(12,0);                       //Setting cursor position for Min
  //lcd.print(RunningMin);

}                                 //***********************  End loop  **********************************

Second Question.....Then I tried doing the same using the Time.h library

/*
   Crude Count UP timer using Time Library
*/

#include <Time.h>

void setup()  {
  Serial.begin(9600);
 const unsigned long DEFAULT_TIME = 1357041600; // Jan 1 2013
}

void loop() {
  Serial.print(day());
  Serial.print(" ");
  Serial.print(hour());
  Serial.print(" ");
  Serial.println(minute());
  delay(1000);
}

Error code is

Arduino: 1.8.3 (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

C:\Users\Herman\Documents\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Users\Herman\Documents\Arduino\hardware -hardware C:\Users\Herman\AppData\Local\Arduino15\packages -tools C:\Users\Herman\Documents\Arduino\tools-builder -tools C:\Users\Herman\Documents\Arduino\hardware\tools\avr -tools C:\Users\Herman\AppData\Local\Arduino15\packages -built-in-libraries C:\Users\Herman\Documents\Arduino\libraries -libraries C:\Users\Herman\Documents\Arduino\My Scetches\libraries -fqbn=arduino:avr:nano:cpu=atmega328old -ide-version=10803 -build-path C:\Users\Herman\AppData\Local\Temp\arduino_build_996901 -warnings=none -build-cache C:\Users\Herman\AppData\Local\Temp\arduino_cache_326436 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.2.1 -prefs=runtime.tools.avr-gcc.path=C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\5.4.0-atmel3.6.1-arduino2 -prefs=runtime.tools.avrdude.path=C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino14 -verbose C:\Users\Herman\Documents\Arduino\My Scetches\CountUp_timer_Days_2\CountUp_timer_Days_2.ino
C:\Users\Herman\Documents\Arduino\arduino-builder -compile -logger=machine -hardware C:\Users\Herman\Documents\Arduino\hardware -hardware C:\Users\Herman\AppData\Local\Arduino15\packages -tools C:\Users\Herman\Documents\Arduino\tools-builder -tools C:\Users\Herman\Documents\Arduino\hardware\tools\avr -tools C:\Users\Herman\AppData\Local\Arduino15\packages -built-in-libraries C:\Users\Herman\Documents\Arduino\libraries -libraries C:\Users\Herman\Documents\Arduino\My Scetches\libraries -fqbn=arduino:avr:nano:cpu=atmega328old -ide-version=10803 -build-path C:\Users\Herman\AppData\Local\Temp\arduino_build_996901 -warnings=none -build-cache C:\Users\Herman\AppData\Local\Temp\arduino_cache_326436 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\arduinoOTA\1.2.1 -prefs=runtime.tools.avr-gcc.path=C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\5.4.0-atmel3.6.1-arduino2 -prefs=runtime.tools.avrdude.path=C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino14 -verbose C:\Users\Herman\Documents\Arduino\My Scetches\CountUp_timer_Days_2\CountUp_timer_Days_2.ino
Using board 'nano' from platform in folder: C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23
Using core 'arduino' from platform in folder: C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23
Detecting libraries used...
"C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\5.4.0-atmel3.6.1-arduino2/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Users\Herman\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\cores\arduino" "-IC:\Users\Herman\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\variants\eightanaloginputs" "C:\Users\Herman\AppData\Local\Temp\arduino_build_996901\sketch\CountUp_timer_Days_2.ino.cpp" -o "nul"
Generating function prototypes...
"C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\5.4.0-atmel3.6.1-arduino2/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Users\Herman\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\cores\arduino" "-IC:\Users\Herman\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\variants\eightanaloginputs" "C:\Users\Herman\AppData\Local\Temp\arduino_build_996901\sketch\CountUp_timer_Days_2.ino.cpp" -o "C:\Users\Herman\AppData\Local\Temp\arduino_build_996901\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Users\Herman\Documents\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\Herman\AppData\Local\Temp\arduino_build_996901\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\Users\Herman\AppData\Local\Arduino15\packages\arduino\tools\avr-gcc\5.4.0-atmel3.6.1-arduino2/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\Users\Herman\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\cores\arduino" "-IC:\Users\Herman\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.23\variants\eightanaloginputs" "C:\Users\Herman\AppData\Local\Temp\arduino_build_996901\sketch\CountUp_timer_Days_2.ino.cpp" -o "C:\Users\Herman\AppData\Local\Temp\arduino_build_996901\sketch\CountUp_timer_Days_2.ino.cpp.o"
C:\Users\Herman\Documents\Arduino\My Scetches\CountUp_timer_Days_2\CountUp_timer_Days_2.ino: In function 'void loop()':

CountUp_timer_Days_2:13: error: 'day' was not declared in this scope

Serial.print(day());

^

CountUp_timer_Days_2:15: error: 'hour' was not declared in this scope

Serial.print(hour());

^

CountUp_timer_Days_2:17: error: 'minute' was not declared in this scope

Serial.println(minute());

^

exit status 1
'day' was not declared in this scope

I confirmed in the TimeLib which is included in Time.h that "day", 'Hour" and "minute' is declared.

Your first question is quite hard. Time changes everytime so please explain when you want to change your display.
Every minute? Just put delay(60000);

If you just want a counter to change every minute, you should just keep track of the minutes and do the maths to print days, hours and minutes.
For example, initialize the minutes counter to 0
In the loop

delay (60000);
counter ++;  // one more minute
minutes = counter %60;
hours = counter / 60;
days = hours / 24;
hours = hours %24;

Or something similar, % being the rest of the division (modulo operation)

For the second question, this may be a library problem. You seem to be referring to the Time library by Paul Stoffregen here.
If so try change your include by
#include <TimeLib.h>and check you have this library installed

Would like to stay away from any DELAY statements, there is already an Arduino in the hothouse that is driving 2 pumps, so DELAY can effect the primary sketch fuction.

Correct Library you are referring to. I tried it but because TimeLib.h is not one of my directories in my Library directory it gave me an error.

Got question one sorted myself.

Added a NOW variable. Stupid question. :confused:

// Constants that won't change :


void setup()   {
  Serial.begin(9600);                      // initialize serial communication:
    PreviousMin = 1;
  //    lcd.init();                        // initialize the lcd
  //    lcd.backlight();
}     //     ****************************** END SETUP *************************************

void loop()   {
  NOW = millis();

  RunningDays = (NOW / 86400000);                                                      //Determine how many Days in current milis
  RunningHrs  = ((NOW - (RunningDays * 86400000)) / 3600000);                          //Subtract Days in millis and determine how many hours left
  RunningMin  = ((NOW - (RunningDays * 86400000) - (RunningHrs * 3600000)) / 60000);   //Subtract Days & Hrs in millis and determine how many Minutes left

  if (RunningMin != PreviousMin) {

  Serial.print(RunningDays);
  Serial.print(" Days  ");

  Serial.print(RunningHrs);
  Serial.print(" Hrs   ");

  Serial.print(RunningMin);
  Serial.println(" Min.");

  PreviousMin = RunningMin;
  }

  //  lcd.setCursor(0,0);                     //Seting cursor position for Days
  // lcd.print(RunningDays);
  // lcd.setCursor(7,0);                      //Setting cursor position for Hrs
  // lcd.print(RunningHrs);
  //lcd.setCursor(12,0);                       //Setting cursor position for Min
  //lcd.print(RunningMin);

}                                 //***********************  End loop  **********************************