From 92b4c159df8d70a3b3e3cfd48f685e6de37396c0 Mon Sep 17 00:00:00 2001
From: BoolPurist <fnxa@posteo.de>
Date: Mon, 28 Feb 2022 15:34:19 +0100
Subject: [PATCH] Added 3, 4 and 5. task.

---
 Aufgaben/Money_Bridge/task_second_day.md      | 177 +++++++++++++++++-
 .../Bridge_Money_Console/Program.cs           |   9 +
 2 files changed, 184 insertions(+), 2 deletions(-)

diff --git a/Aufgaben/Money_Bridge/task_second_day.md b/Aufgaben/Money_Bridge/task_second_day.md
index c997f44..b0acfb0 100644
--- a/Aufgaben/Money_Bridge/task_second_day.md
+++ b/Aufgaben/Money_Bridge/task_second_day.md
@@ -47,7 +47,7 @@ Console.WriteLine($"{givenNumber} with 1 leading zero => {result}");
 
 Es soll eine Funktion namens CreateFrom angelegt werden.
 
-Diese Funktion soll  Parametern bekommen und dann ein Structure vom Type Money bauen. Dieses erstellt Structure soll dann zurückgegeben werden.
+Diese Funktion soll  Parametern bekommen und dann ein Structure vom Type Money bauen. Dieses erstellte Structure soll dann zurückgegeben werden.
 
 Die Funktion bekommt 2 Parameter:
 
@@ -125,7 +125,7 @@ Money secondAmount = MoneyUtility.CreateFrom(0, 40);
 Console.WriteLine($"MoneyUtility.GetTextFrom(secondAmount) = {MoneyUtility.GetTextFrom(secondAmount)}");
 
 Money thirdAmount = MoneyUtility.CreateFrom(5, 24);
-Console.WriteLine($"MoneyUtility.GetTextFrom(thirdAmount) = {MoneyUtilityGetTextFrom(thirdAmount)}");
+Console.WriteLine($"MoneyUtility.GetTextFrom(thirdAmount) = {MoneyUtility.GetTextFrom(thirdAmount)}");
 
 ```
 
@@ -138,3 +138,176 @@ MoneyUtility.GetTextFrom(firstAmount) = 2.00 Euro
 MoneyUtility.GetTextFrom(secondAmount) = 0.40 Euro
 
 MoneyUtility.GetTextFrom(thirdAmount) = 5.24 Euro
+
+## 3. Aufgabe
+
+Nun soll eine Funktion namens GetTotalCentsFrom implementiert werden.
+
+Diese Funktion soll die Gesamtanzahl von Cents aus einem Geldbetrag herausfinden. Beispiel: Ein Money Objekt ist 2,50 Euro, dann sind das 250 Cents.
+
+1. Parameter ist der Geldbetrag von dem der ganze Cent Betrag errechnet werden soll.
+
+**Beispiel:**
+
+```C#
+Money amount = MoneyUtility.CreateFrom(2, 50);
+int cents = MoneyUtility.GetTotalCentsFrom(amount);
+Console.WriteLine(cents); // 250
+```
+
+**Test Code:**
+```C#
+Console.WriteLine("Testing for GetTotalCentsFrom");
+
+Money firstAmount = MoneyUtility.CreateFrom(2, 0);
+Console.WriteLine($"MoneyUtility.GetTotalCentsFrom(firstAmount) = {MoneyUtility.GetTotalCentsFrom(firstAmount)}");
+
+Money secondAmount = MoneyUtility.CreateFrom(0, 40);
+Console.WriteLine($"MoneyUtility.GetTotalCentsFrom(firstAmount) = {MoneyUtility.GetTotalCentsFrom(secondAmount)}");
+
+Money thirdAmount = MoneyUtility.CreateFrom(5, 24);
+Console.WriteLine($"MoneyUtility.GetTotalCentsFrom(firstAmount) = {MoneyUtility.GetTotalCentsFrom(thirdAmount)}");
+
+```
+
+**Erwartete Ausgabe:**
+
+Testing for GetTotalCentsFrom
+
+MoneyUtility.GetTotalCentsFrom(firstAmount) = 200
+
+MoneyUtility.GetTotalCentsFrom(firstAmount) = 40
+
+MoneyUtility.GetTotalCentsFrom(firstAmount) = 524
+
+## 4. Aufgabe
+
+Es soll nun eine Funktion namens Add implementiert werden.
+
+Diese Funktion soll die Summe aus 2 Euro Beträgen errechnen.
+Beispielsweise soll die Funktion bei den Geldbeträgen 2,42 und 1,30 Euro den Betrag 3,72 Euro als Summe zurückgeben.
+
+1. Parameter ist die linke Zahl einer Addition.
+2. Parameter ist die rechte Zahle einer Addition.
+
+**Beispiel:**
+```C#
+Money first = MoneyUtility.CreateFrom(2, 42);
+Money second = MoneyUtility.CreateFrom(1, 30);
+Money sum = MoneyUtility.Add(first, second);
+Console.WriteLine(MoneyUtility.GetTextFrom(sum)); // 3.72 Euro
+```
+**Test Code:**
+```C#
+Console.WriteLine("Testing for Add");
+
+Money firstAmount = MoneyUtility.CreateFrom(2, 0);
+Money secondAmount = MoneyUtility.CreateFrom(5, 0);
+Money sum = MoneyUtility.Add(firstAmount, secondAmount);
+Console.WriteLine(
+    $"Sum with {MoneyUtility.GetTextFrom(firstAmount)} + {MoneyUtility.GetTextFrom(secondAmount)}" +
+    $" = {MoneyUtility.GetTextFrom(sum)}"
+);
+
+firstAmount = MoneyUtility.CreateFrom(0, 42);
+secondAmount = MoneyUtility.CreateFrom(0, 78);
+sum = MoneyUtility.Add(firstAmount, secondAmount);
+Console.WriteLine(                
+    $"Sum with {MoneyUtility.GetTextFrom(firstAmount)} + {MoneyUtility.GetTextFrom(secondAmount)}" +
+    $" = {MoneyUtility.GetTextFrom(sum)}"
+);
+
+firstAmount = MoneyUtility.CreateFrom(1, 42);
+secondAmount = MoneyUtility.CreateFrom(9, 56);
+sum = MoneyUtility.Add(firstAmount, secondAmount);
+Console.WriteLine(                
+    $"Sum with {MoneyUtility.GetTextFrom(firstAmount)} + {MoneyUtility.GetTextFrom(secondAmount)}" +
+    $" = {MoneyUtility.GetTextFrom(sum)}"
+);
+```
+
+**Erwartete Ausgabe:**
+
+Testing for Add
+
+Sum with 2.00 Euro + 5.00 Euro = 7.00 Euro
+
+Sum with 0.42 Euro + 0.78 Euro = 1.20 Euro
+
+Sum with 1.42 Euro + 9.56 Euro = 10.98 Euro
+
+
+## 5.Aufgabe
+
+Es soll nun die Funktion namens GetChange implementiert werden.
+
+Diese Funktion soll das Wechselgeld bei einem gegebenen Preis zurück gegeben. Beispielsweise ist 3 Euro als Preis gegeben und 4 Euro wird bezahlt. Dann soll 1 Euro als Wechselgeld zurück gegeben werden.
+
+1. Parameter ist der Preis.
+2. Parameter ist die Zahlung.
+
+Besonderheit: Falls die Zahlung kleiner ist als der Preis, dann
+soll 0 als Rückgabewert zurück gegeben werden.
+
+**Beispiel:**
+
+```C#
+Money price = MoneyUtility.CreateFrom(3, 0);
+Money payment = MoneyUtility.CreateFrom(4, 0);
+Money change = MoneyUtility.GetChange(price, payment);
+Console.WriteLine(MoneyUtility.GetTextFrom(change)); // 1.00 Euro
+```
+
+**Test Code:**
+```C#
+Console.WriteLine("Testing for GetChange");
+
+Money price = MoneyUtility.CreateFrom(3, 0);
+Money payment = MoneyUtility.CreateFrom(4, 0);
+Money change = MoneyUtility.GetChange(price, payment);
+
+Console.WriteLine(
+    $"Price {MoneyUtility.GetTextFrom(price)} and paid {MoneyUtility.GetTextFrom(payment)} = " +
+    $" Change: {MoneyUtility.GetTextFrom(change)}"
+);
+
+price = MoneyUtility.CreateFrom(0, 80);
+payment = MoneyUtility.CreateFrom(0, 82);
+change = MoneyUtility.GetChange(price, payment);
+
+Console.WriteLine(
+    $"Price {MoneyUtility.GetTextFrom(price)} and paid {MoneyUtility.GetTextFrom(payment)} =" +
+    $" Change: {MoneyUtility.GetTextFrom(change)}"
+);
+
+price = MoneyUtility.CreateFrom(2, 42);
+payment = MoneyUtility.CreateFrom(3, 11);
+change = MoneyUtility.GetChange(price, payment);
+
+Console.WriteLine(
+    $"Price {MoneyUtility.GetTextFrom(price)} and paid {MoneyUtility.GetTextFrom(payment)} =" +
+    $" Change: {MoneyUtility.GetTextFrom(change)}"
+);
+
+price = MoneyUtility.CreateFrom(5, 0);
+payment = MoneyUtility.CreateFrom(3, 0);
+change = MoneyUtility.GetChange(price, payment);
+
+Console.WriteLine(
+    $"Price {MoneyUtility.GetTextFrom(price)} and paid {MoneyUtility.GetTextFrom(payment)} =" +
+    $" Change: {MoneyUtility.GetTextFrom(change)}"
+);
+
+```
+
+**Erwartete Ausgabe:**
+
+Testing for GetChange
+
+Price 3.00 Euro and paid 4.00 Euro = Change: 1.00 Euro
+
+Price 0.80 Euro and paid 0.82 Euro = Change: 0.02 Euro
+
+Price 2.42 Euro and paid 3.11 Euro = Change: 0.69 Euro
+
+Price 5.00 Euro and paid 3.00 Euro = Change: 0.00 Euro
diff --git a/Code/Money_Bridge/Bridge_Money_Console/Program.cs b/Code/Money_Bridge/Bridge_Money_Console/Program.cs
index 3031899..282c27a 100644
--- a/Code/Money_Bridge/Bridge_Money_Console/Program.cs
+++ b/Code/Money_Bridge/Bridge_Money_Console/Program.cs
@@ -131,6 +131,15 @@ namespace Bridge_Money_Console
                 $"Price {MoneyUtility.GetTextFrom(price)} and paid {MoneyUtility.GetTextFrom(payment)} =" +
                 $" Change: {MoneyUtility.GetTextFrom(change)}"
             );
+            
+            price = MoneyUtility.CreateFrom(5, 0);
+            payment = MoneyUtility.CreateFrom(3, 0);
+            change = MoneyUtility.GetChange(price, payment);
+            
+            Console.WriteLine(
+                $"Price {MoneyUtility.GetTextFrom(price)} and paid {MoneyUtility.GetTextFrom(payment)} =" +
+                $" Change: {MoneyUtility.GetTextFrom(change)}"
+            );
 
         }
     }
-- 
GitLab