To be honest, this is more of Java API question than a Clojure question. You might also try asking your question (in Java code) in a Java forum.
Bill On Sep 6, 5:05 am, Mathias Dahl <[EMAIL PROTECTED]> wrote: > I came up with this for my scheduling needs (I use it for getting the > start time for a Timer): > > (import '(java.util GregorianCalendar)) > > (defn get-next-friday-noon [] > (let [cal (new GregorianCalendar) > day-of-week (. cal (get (. GregorianCalendar DAY_OF_WEEK))) > friday (. GregorianCalendar FRIDAY) > day-of-week-field (. GregorianCalendar DAY_OF_WEEK) > hour-of-day-field (. GregorianCalendar HOUR_OF_DAY) > minute-field (. GregorianCalendar MINUTE) > second-field (. GregorianCalendar SECOND) > diff (- friday day-of-week)] > (cond (> diff 0) ;; Friday is later this week > (. cal (add day-of-week-field diff)) > (< diff 0) ;; Friday was earlier this week > (. cal (add day-of-week-field (+ 7 diff))) > (= diff 0) ;; Today is Friday > (if (> (. cal (get hour-of-day-field)) 12) > (. cal (add day-of-week-field 7)))) > ;; Always set time to 12:00:00 before it is returned > (. (doto cal > (set hour-of-day-field 12) > (set minute-field 00) > (set second-field 00)) > (getTime)))) > > It returns the time of next Friday at noon. If today is Friday, it > might return the time of noon today if it is before noon. If it is > after noon then it will return next Friday noon. > > However, it seems very complicated, does anyone have some clever idea > on how to optimize it? > > /Mathias --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---