현재 시각을 컨솔에 보여주는 간단한 OCaml 언어 소스 코드이다.
UTC란 1970년 1월 1일 0시 0분 0초를 기준으로 하여 경과된 초 단위의 총 시간을 의미한다.
UTC(Universal Time  Coordinated, 협정세계시, 協定世界時)

 

  1. (*
  2.  *  Filename: testCTimeApp.ml
  3.  *
  4.  *  Execute: Uncomment the line (* #load "unix.cma" ;; *)
  5.  *           ocaml testCTimeApp.ml
  6.  *
  7.  *  Compile: ocamlc -g -c testCTimeApp.ml
  8.  *           ocamlc -o testCTimeApp.exe unix.cma testCTimeApp.cmo
  9.  *  Execute: testCTimeApp 
  10.  *)
  11. (* #load "unix.cma" ;; *)    (* ocaml 로 실행 시에는 이 곳의 주석 표시 제거 *)
  12. open Unix ;;
  13. open Printf;;
  14. let weekNames = [| "일"; "월"; "화"; "수"; "목"; "금"; "토" |]
  15. let now = Unix.time ()
  16. let {Unix.tm_sec=seconds; tm_min=minutes; tm_hour=hours;
  17.      tm_mday=day_of_month; tm_mon=month; tm_year=year;
  18.      tm_wday=wday; tm_yday=yday; tm_isdst=isdst} =
  19.   Unix.localtime now
  20. let startOfEpoch = mktime (localtime (time ())) ;;
  21. (* 1970년 1월 1일 0시 0분 0초부터 시작하여 현재까지의 초 *)
  22. let () = printf "UTC: %.0f\n" (fst startOfEpoch)
  23. (* 현재 시각 표시: 20xx년 xx월 xx일 (x요일) xx시 xx분 xx초 *)
  24. let () = printf "%d년 " (1970 + year)
  25. let () = printf "%d월 " (1 + month)     (* Not 1 + now.Month !! *)
  26. let () = printf "%d일 " (day_of_month)
  27. let () = printf "(%s요일) " (weekNames.(wday))
  28. let () = printf "%d시 " (hours)
  29. let () = printf "%d분 " (minutes)
  30. let () = printf "%d초" (seconds)
  31. let () = print_newline()
  32. (* 1월 1일은 1, 1월 2일은 2 *)
  33. let () = printf "올해 몇 번째 날: %d, " (yday)
  34. (* true 이면 서머타임 있음 *)
  35. let str = if not (isdst) then "안함" else "함"
  36. let () = printf "서머타임 적용 여부: %s\n"  str



컴파일> ocamlc -o testCTimeApp.exe testCTimeApp.ml

실행> testCTimeApp
UTC: 1359278723
2083년 1월 27일 (일요일) 18시 25분 23초
올해 몇 번째 날: 26, 서머타임 적용 여부: 안함



Posted by Scripter
,