diff options
| author | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2021-11-08 16:02:34 -0800 |
|---|---|---|
| committer | Tyler Wardhaugh <tyler.wardhaugh@gmail.com> | 2021-11-13 16:49:14 -0800 |
| commit | 0814a5fbb2b360dc72ef19246ae752f2efa96d67 (patch) | |
| tree | 299b455e5722aea82cae9face8b1879ef295772d | |
| parent | f9482b9b1eee4938a35a455164f04a0800a1bdc0 (diff) | |
| download | perlweeklychallenge-club-0814a5fbb2b360dc72ef19246ae752f2efa96d67.tar.gz perlweeklychallenge-club-0814a5fbb2b360dc72ef19246ae752f2efa96d67.tar.bz2 perlweeklychallenge-club-0814a5fbb2b360dc72ef19246ae752f2efa96d67.zip | |
Ch138 (Clojure): Task 1
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))))) |
