summaryrefslogtreecommitdiffstats
path: root/2022-2/L1/mitsuo/aux.cpp
diff options
context:
space:
mode:
authorMitsuo Tokumori <[email protected]>2022-09-17 00:57:54 -0500
committerMitsuo Tokumori <[email protected]>2022-09-17 00:57:54 -0500
commitc571cb7df606206675311a773e4077a50f0c0ff2 (patch)
tree275582f66df247742a3f52c5afbf9ab1c1631c58 /2022-2/L1/mitsuo/aux.cpp
parent4d0f0e9b8152efe2cf91afc17986a67c7bd55954 (diff)
downloadLP1-c571cb7df606206675311a773e4077a50f0c0ff2.tar.gz
LP1-c571cb7df606206675311a773e4077a50f0c0ff2.tar.bz2
LP1-c571cb7df606206675311a773e4077a50f0c0ff2.zip
L1 completo. No tan "succinct" que digamos, pero
Las macros de los stream manipulators ahorran mucho codigo. Definitivamente voy a reusar eso para las siguientes resoluciones. Aun hay muchos aspectos en que mejorar. En cuestion de tiempos, la parte basica la acabe en 1h 40m mas o menos, pero de ahi en hacer las macros, re-leer la fecha como enteros, todo lo de los contadores, y perfeccionando el formato, me demore unas 2-3h mas. Tambien es el primer lab de C++ que resuelvo desde hace 2 aƱos. Definitivamente este curso es pura practica, entender los casos tipo, entender la menera que el profesor quiere que se codifique y no perder el foco en la solucion. Me interesa hacer una solucion en python a ver cuanto tiempo y lineas de codigo se ahorra...
Diffstat (limited to '2022-2/L1/mitsuo/aux.cpp')
-rw-r--r--2022-2/L1/mitsuo/aux.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/2022-2/L1/mitsuo/aux.cpp b/2022-2/L1/mitsuo/aux.cpp
new file mode 100644
index 0000000..bd9417d
--- /dev/null
+++ b/2022-2/L1/mitsuo/aux.cpp
@@ -0,0 +1,37 @@
+/* Auxiliary/helper/reusable functions */
+
+#include <iostream>
+#include <iomanip>
+
+#include "aux.h"
+
+using namespace std;
+
+/* "dd/mm/yyyy" -> yyyymmdd (int) */
+int readdate(istream &is)
+{
+ char c;
+ int d, m, y;
+
+ is >> d >> c
+ >> m >> c
+ >> y;
+
+ return y * 10000 + m * 100 + d;
+}
+
+/* yyyymmdd (int) -> "dd/mm/yyyy" */
+void writedate(ostream &os, int intdate)
+{
+ int d, m, y;
+
+ d = intdate % 100;
+ intdate /= 100;
+ m = intdate % 100;
+ intdate /= 100;
+ y = intdate;
+
+ os << WR0(2, 2, y) << '/'
+ << WR0(2, 2, m) << '/'
+ << WR0(2, 2, d) << '\n';
+}