fork download
  1. main = putStrLn $ show $ weekday 1 1 1
  2.  
  3. weekday :: Int -> Int -> Int -> String
  4. weekday jahr monat tag =
  5. let name = (mod ( tag + x + (div ( 31 * m ) 12 )) 7 )
  6. in
  7. case name of
  8. 0 -> "Sonntag"
  9. 1 -> "Montag"
  10. 2 -> "Dienstag"
  11. 3 -> "Mittwoch"
  12. 4 -> "Donnerstag"
  13. 5 -> "Freitag"
  14. 6 -> "Samstag"
  15. where
  16. y = jahr - ( div ( 14 - monat ) 12 )
  17. x = y + ( div y 4 ) - ( div y 100 ) + ( div y 400 )
  18. m = monat + (12 * ( div ( 14 - monat ) 12 )) - 2
  19.  
Success #stdin #stdout 0s 6276KB
stdin
Standard input is empty
stdout
"Montag"