현재 시각을 컨솔에 보여주는 간단한 OCaml 언어 소스 코드이다.
UTC란 1970년 1월 1일 0시 0분 0초를 기준으로 하여 경과된 초 단위의 총 시간을 의미한다.
UTC(Universal Time Coordinated, 협정세계시, 協定世界時)
- (*
- * Filename: testCTimeApp.ml
- *
- * Execute: Uncomment the line (* #load "unix.cma" ;; *)
- * ocaml testCTimeApp.ml
- *
- * Compile: ocamlc -g -c testCTimeApp.ml
- * ocamlc -o testCTimeApp.exe unix.cma testCTimeApp.cmo
- * Execute: testCTimeApp
- *)
- (* #load "unix.cma" ;; *) (* ocaml 로 실행 시에는 이 곳의 주석 표시 제거 *)
- open Unix ;;
- open Printf;;
- let weekNames = [| "일"; "월"; "화"; "수"; "목"; "금"; "토" |]
- let now = Unix.time ()
- let {Unix.tm_sec=seconds; tm_min=minutes; tm_hour=hours;
- tm_mday=day_of_month; tm_mon=month; tm_year=year;
- tm_wday=wday; tm_yday=yday; tm_isdst=isdst} =
- Unix.localtime now
- let startOfEpoch = mktime (localtime (time ())) ;;
- (* 1970년 1월 1일 0시 0분 0초부터 시작하여 현재까지의 초 *)
- let () = printf "UTC: %.0f\n" (fst startOfEpoch)
- (* 현재 시각 표시: 20xx년 xx월 xx일 (x요일) xx시 xx분 xx초 *)
- let () = printf "%d년 " (1970 + year)
- let () = printf "%d월 " (1 + month) (* Not 1 + now.Month !! *)
- let () = printf "%d일 " (day_of_month)
- let () = printf "(%s요일) " (weekNames.(wday))
- let () = printf "%d시 " (hours)
- let () = printf "%d분 " (minutes)
- let () = printf "%d초" (seconds)
- let () = print_newline()
- (* 1월 1일은 1, 1월 2일은 2 *)
- let () = printf "올해 몇 번째 날: %d, " (yday)
- (* true 이면 서머타임 있음 *)
- let str = if not (isdst) then "안함" else "함"
- let () = printf "서머타임 적용 여부: %s\n" str
컴파일> ocamlc -o testCTimeApp.exe testCTimeApp.ml
실행> testCTimeApp
UTC: 1359278723
2083년 1월 27일 (일요일) 18시 25분 23초
올해 몇 번째 날: 26, 서머타임 적용 여부: 안함
'프로그래밍 > OCaml' 카테고리의 다른 글
대화형 모드의 진법(radix) 변환 예제 with OCaml (0) | 2013.01.27 |
---|---|
황금비율(golden ratio) 구하기 with OCaml (0) | 2013.01.27 |
80컬럼 컨솔에 19단표 출력하기 예제 for OCaml (0) | 2013.01.27 |
(최대공약수 구하기) while 반복문 없는 예제 for OCaml (0) | 2013.01.27 |
(최대공약수 구하기) while... 반복문 예제 for OCaml (0) | 2013.01.26 |