diff --git a/inc/Services/TimeManagementService.hpp b/inc/Services/TimeManagementService.hpp
index 8b1a31fca1de9df1839fb4f3917a7191648e8ffb..d006a5d712b27ffc0218ef31dee469d5bb7d411a 100644
--- a/inc/Services/TimeManagementService.hpp
+++ b/inc/Services/TimeManagementService.hpp
@@ -2,6 +2,7 @@
 #define ECSS_SERVICES_TIMEMANAGEMENTSERVICE_HPP
 
 #include <Service.hpp>
+#include <ctime>
 #include "Helpers/TimeHelper.hpp"
 
 /**
@@ -23,16 +24,13 @@ public:
 	/**
 	 * TM[9,2] CUC time report
 	 *
-	 * @param seconds the seconds provided from the RTC. This function in general should have
-	 * parameters corresponding with the RTC. For the time being we assume that the RTC has a
-	 * 32-bit counter that counts seconds(the RTC in Nucleo F103RB!)
 	 * @todo check if we need spacecraft time reference status
 	 * @todo ECSS standard claims: <<The time reports generated by the time reporting subservice
 	 * are spacecraft time packets. A spacecraft time packet does not carry the message type,
 	 * consisting of the service type and message subtype.>> Check if we need to implement that
 	 * or should ignore the standard?
 	 */
-	void cucTimeReport(uint32_t seconds);
+	void cucTimeReport();
 };
 
 
diff --git a/src/Helpers/TimeHelper.cpp b/src/Helpers/TimeHelper.cpp
index f8e5c158544a1a519daff6b729c40bf5ef3f3276..462c7e8b35ea06bfe440f84b7e3e568e2a7891d2 100644
--- a/src/Helpers/TimeHelper.cpp
+++ b/src/Helpers/TimeHelper.cpp
@@ -30,10 +30,14 @@ uint64_t TimeHelper::implementCUCTimeFormat(uint32_t seconds) {
 	/**
 	 * Define time format including P-field and T-Field
 	 *
-	 * Note: Only the 40 bits of the 64 will be used for the timeFormat(0-7 : P-field, 8-39:
-	 * T-field)
+	 * Notes:
+	 * Only the 40 bits of the 64 will be used for the timeFormat(0-7 : P-field, 8-39: T-field)
+	 *
+	 * Shift operators have high priority. That's why we should do a type-casting first so we
+	 * don't lose valuable bits
 	*/
-	uint64_t timeFormat = (totalSeconds << 8 | pField);
+	uint64_t timeFormat = (static_cast<uint64_t>(totalSeconds) << 8 | pField);
+
 
 	return timeFormat;
 }
diff --git a/src/Services/TimeManagementService.cpp b/src/Services/TimeManagementService.cpp
index b2ad7ebd4b3b70231c47bdd1c61991c19f143dec..2b3feb68aa059b7131863d84cd2d6e79d8328fa1 100644
--- a/src/Services/TimeManagementService.cpp
+++ b/src/Services/TimeManagementService.cpp
@@ -1,12 +1,20 @@
 #include "Services/TimeManagementService.hpp"
 
-void TimeManagementService::cucTimeReport(uint32_t seconds) {
+void TimeManagementService::cucTimeReport() {
 	// TM[9,2] CUC time report
 
 	Message timeReport = createTM(2);
 
-	timeReport.appendByte(TimeHelper::implementCUCTimeFormat(seconds)); // append the P-field
-	timeReport.appendWord(TimeHelper::implementCUCTimeFormat(seconds) >> 8); // append the T-field
+	/**
+	 * For the time being we will use C++ functions to get a time value, but this will change
+	 * when the RTC will be implemented
+	 */
+	uint32_t seconds;
+	seconds = time(nullptr); // seconds have passed since 00:00:00 GMT, Jan 1, 1970
+	uint64_t timeFormat = TimeHelper::implementCUCTimeFormat(seconds); // store the return value
+
+	timeReport.appendByte(timeFormat); // append the P-field
+	timeReport.appendWord(timeFormat >> 8); // append the T-field
 
 	storeMessage(timeReport);
 }
diff --git a/src/main.cpp b/src/main.cpp
index 46b0eb3838155e073474b946e5dcac5455a0824a..23501aef8173e49da08a644736f69057d801522b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -164,6 +164,7 @@ int main() {
 
 	// ST[09] test
 	TimeManagementService timeReport;
-	timeReport.cucTimeReport(60);
+	timeReport.cucTimeReport();
+
 	return 0;
 }
diff --git a/test/Services/TimeManagementService.cpp b/test/Services/TimeManagementService.cpp
index 5bdec1b4e97e66e3c52f4ca265ebc3f6ac9a3ed3..714c99e144480c5037a286a5dcdada334f06d145 100644
--- a/test/Services/TimeManagementService.cpp
+++ b/test/Services/TimeManagementService.cpp
@@ -5,21 +5,12 @@
 TEST_CASE("TM[9,2]", "[service][st09]") {
 	TimeManagementService timeFormat;
 
-	uint32_t seconds = 60;
-	timeFormat.cucTimeReport(seconds);
-	Message response = ServiceTests::get(0);
-	CHECK(response.readByte() == 50);
-	CHECK(response.readWord() == seconds);
+	uint32_t seconds;
+	seconds = time(nullptr);
 
-	seconds = 100;
-	timeFormat.cucTimeReport(seconds);
-	response = ServiceTests::get(1);
+	timeFormat.cucTimeReport();
+	Message response = ServiceTests::get(0);
 	CHECK(response.readByte() == 50);
 	CHECK(response.readWord() == seconds);
 
-	seconds = 1000;
-	timeFormat.cucTimeReport(seconds);
-	response = ServiceTests::get(2);
-	CHECK(response.readByte() == 50);
-	CHECK(response.readWord() == seconds);
 }