aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Wardhaugh <tyler.wardhaugh@gmail.com>2021-11-08 16:02:34 -0800
committerTyler Wardhaugh <tyler.wardhaugh@gmail.com>2021-11-13 16:49:14 -0800
commit0814a5fbb2b360dc72ef19246ae752f2efa96d67 (patch)
tree299b455e5722aea82cae9face8b1879ef295772d
parentf9482b9b1eee4938a35a455164f04a0800a1bdc0 (diff)
downloadperlweeklychallenge-club-0814a5fbb2b360dc72ef19246ae752f2efa96d67.tar.gz
perlweeklychallenge-club-0814a5fbb2b360dc72ef19246ae752f2efa96d67.tar.bz2
perlweeklychallenge-club-0814a5fbb2b360dc72ef19246ae752f2efa96d67.zip
Ch138 (Clojure): Task 1
-rw-r--r--challenge-138/tyler-wardhaugh/clojure/deps.edn4
-rw-r--r--challenge-138/tyler-wardhaugh/clojure/pom.xml10
-rw-r--r--challenge-138/tyler-wardhaugh/clojure/src/tw/weekly/c138/t1.clj13
-rw-r--r--challenge-138/tyler-wardhaugh/clojure/test/tw/weekly/c138/t1_test.clj5
4 files changed, 27 insertions, 5 deletions
diff --git a/challenge-138/tyler-wardhaugh/clojure/deps.edn b/challenge-138/tyler-wardhaugh/clojure/deps.edn
index 5b1400b27e..54edd9d65e 100644
--- a/challenge-138/tyler-wardhaugh/clojure/deps.edn
+++ b/challenge-138/tyler-wardhaugh/clojure/deps.edn
@@ -1,5 +1,7 @@
{:paths ["src" "resources"]
- :deps {org.clojure/clojure {:mvn/version "1.10.3"}}
+ :deps {org.clojure/clojure {:mvn/version "1.10.3"}
+ clojure.java-time/clojure.java-time {:mvn/version "0.3.3"}
+ org.threeten/threeten-extra {:mvn/version "1.7.0"}}
:aliases
{:test {:extra-paths ["test"]
:extra-deps {org.clojure/test.check {:mvn/version "1.1.0"}
diff --git a/challenge-138/tyler-wardhaugh/clojure/pom.xml b/challenge-138/tyler-wardhaugh/clojure/pom.xml
index 2a0300d875..8f51ecb4bb 100644
--- a/challenge-138/tyler-wardhaugh/clojure/pom.xml
+++ b/challenge-138/tyler-wardhaugh/clojure/pom.xml
@@ -24,6 +24,16 @@
<artifactId>clojure</artifactId>
<version>1.10.3</version>
</dependency>
+ <dependency>
+ <groupId>clojure.java-time</groupId>
+ <artifactId>clojure.java-time</artifactId>
+ <version>0.3.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.threeten</groupId>
+ <artifactId>threeten-extra</artifactId>
+ <version>1.7.0</version>
+ </dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
diff --git a/challenge-138/tyler-wardhaugh/clojure/src/tw/weekly/c138/t1.clj b/challenge-138/tyler-wardhaugh/clojure/src/tw/weekly/c138/t1.clj
index badf10ee50..1cec5141e3 100644
--- a/challenge-138/tyler-wardhaugh/clojure/src/tw/weekly/c138/t1.clj
+++ b/challenge-138/tyler-wardhaugh/clojure/src/tw/weekly/c138/t1.clj
@@ -1,14 +1,23 @@
(ns tw.weekly.c138.t1
- (:require [clojure.edn :as edn]))
+ (:require [clojure.edn :as edn]
+ [java-time :as j]))
;;;
; Task description for TASK #1 › Workdays
;;;
(def DEFAULT-INPUT [2021])
+(defn count-workdays
+ [year]
+ (let [start (j/local-date year 1 1)
+ end (j/plus start (j/years 1))
+ source (j/iterate j/adjust start :next-working-day)
+ xf (take-while #(j/before? % end))]
+ (count (sequence xf source))))
+
(defn -main
"Run Task 2 with a given input N, defaulting to the first example from the
task description."
[& args]
(let [[N] (or (some->> args (map edn/read-string)) DEFAULT-INPUT)]
- ))
+ (println (count-workdays N))))
diff --git a/challenge-138/tyler-wardhaugh/clojure/test/tw/weekly/c138/t1_test.clj b/challenge-138/tyler-wardhaugh/clojure/test/tw/weekly/c138/t1_test.clj
index 8809fb615c..9d32ebaad2 100644
--- a/challenge-138/tyler-wardhaugh/clojure/test/tw/weekly/c138/t1_test.clj
+++ b/challenge-138/tyler-wardhaugh/clojure/test/tw/weekly/c138/t1_test.clj
@@ -1,7 +1,8 @@
(ns tw.weekly.c138.t1-test
(:require [clojure.test :refer [deftest is testing]]
- [tw.weekly.c138.t1 :refer []]))
+ [tw.weekly.c138.t1 :refer [count-workdays]]))
(deftest examples
(testing "Examples from description"
- ))
+ (is (= 261 (count-workdays 2021)))
+ (is (= 262 (count-workdays 2020)))))