Problem with DS3232RTC library

Hello guys!
I’m trying to use DS3232 to make a external interrupt periodically to wake up the Arduino at power saving mode!
The circuit i wired can be set and read greatly with the code below.
So i think the circuit is correctly.

#include "Wire.h"
#define DS3231_I2C_ADDRESS 0x68
// Convert normal decimal numbers to binary coded decimal
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(30,4,17,1,8,1,17);
}
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
}

But compile error when i was trying to use the DS3232 library , the error message said can’t find the Streaming.h.
After i import the Streaming library, the error message is more and more.
Here’s the error messages :

Arduino:1.6.12 (Windows 7), 板子:"Arduino/Genuino Uno"

In file included from C:\Users\user\Documents\Arduino\libraries\DS3232RTC-master\examples\SetSerial\SetSerial.ino:35:0:

C:\Users\user\Documents\Arduino\libraries\DS3232RTC-master/DS3232RTC.h:136:26: error: 'tmElements_t' has not been declared

         static byte read(tmElements_t &tm);

                          ^

C:\Users\user\Documents\Arduino\libraries\DS3232RTC-master/DS3232RTC.h:137:20: error: 'tmElements_t' has not been declared

         byte write(tmElements_t &tm);

                    ^

C:\Users\user\Documents\Arduino\libraries\DS3232RTC-master\examples\SetSerial\SetSerial.ino: In function 'void setup()':

SetSerial:46: error: 'setSyncProvider' was not declared in this scope

     setSyncProvider(RTC.get);

                            ^

SetSerial:48: error: 'timeStatus' was not declared in this scope

     if (timeStatus() != timeSet) Serial << F(" FAIL!");

                    ^

SetSerial:48: error: 'timeSet' was not declared in this scope

     if (timeStatus() != timeSet) Serial << F(" FAIL!");

                         ^

C:\Users\user\Documents\Arduino\libraries\DS3232RTC-master\examples\SetSerial\SetSerial.ino: In function 'void loop()':

SetSerial:56: error: 'tmElements_t' was not declared in this scope

     tmElements_t tm;

     ^

SetSerial:68: error: expected unqualified-id before '.' token

                 tm.Year = CalendarYrToTm(y);

                   ^

SetSerial:70: error: expected unqualified-id before '.' token

                 tm.Year = y2kYearToTm(y);

                   ^

SetSerial:71: error: expected unqualified-id before '.' token

             tm.Month = Serial.parseInt();

               ^

SetSerial:72: error: expected unqualified-id before '.' token

             tm.Day = Serial.parseInt();

               ^

SetSerial:73: error: expected unqualified-id before '.' token

             tm.Hour = Serial.parseInt();

               ^

SetSerial:74: error: expected unqualified-id before '.' token

             tm.Minute = Serial.parseInt();

               ^

SetSerial:75: error: expected unqualified-id before '.' token

             tm.Second = Serial.parseInt();

               ^

SetSerial:76: error: expected primary-expression before ')' token

             t = makeTime(tm);

                            ^

SetSerial:76: error: 'makeTime' was not declared in this scope

SetSerial:78: error: 'setTime' was not declared in this scope

             setTime(t);        

                      ^

SetSerial:87: error: 'now' was not declared in this scope

     t = now();

             ^

SetSerial:91: error: 'second' was not declared in this scope

         if (second(t) == 0) {

                     ^

C:\Users\user\Documents\Arduino\libraries\DS3232RTC-master\examples\SetSerial\SetSerial.ino: In function 'void printTime(time_t)':

SetSerial:111: error: 'hour' was not declared in this scope

     printI00(hour(t), ':');

                    ^

SetSerial:112: error: 'minute' was not declared in this scope

     printI00(minute(t), ':');

                      ^

SetSerial:113: error: 'second' was not declared in this scope

     printI00(second(t), ' ');

                      ^

C:\Users\user\Documents\Arduino\libraries\DS3232RTC-master\examples\SetSerial\SetSerial.ino: In function 'void printDate(time_t)':

SetSerial:119: error: 'day' was not declared in this scope

     printI00(day(t), 0);

                   ^

SetSerial:120: error: 'month' was not declared in this scope

     Serial << monthShortStr(month(t)) << _DEC(year(t));

                                    ^

SetSerial:120: error: 'monthShortStr' was not declared in this scope

     Serial << monthShortStr(month(t)) << _DEC(year(t));

                                     ^

In file included from C:\Users\user\Documents\Arduino\libraries\DS3232RTC-master\examples\SetSerial\SetSerial.ino:36:0:

SetSerial:120: error: 'year' was not declared in this scope

     Serial << monthShortStr(month(t)) << _DEC(year(t));

                                                     ^

C:\Users\user\Documents\Arduino\libraries\Streaming/Streaming.h:64:28: note: in definition of macro '_DEC'

 #define _DEC(a)     _BASED(a, DEC)

                            ^

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

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

How can i start with this library?

Here's the explanation of the problem and the code changes you need to make:

I don't understand why the author of that library won't just merge that pull request.