mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			OCaml
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			OCaml
		
	
	
	
	
	
(*
 | 
						|
 * Copyright (c) 2013 Jeremy Yallop.
 | 
						|
 *
 | 
						|
 * This file is distributed under the terms of the MIT License.
 | 
						|
 * See the file LICENSE for details.
 | 
						|
 *)
 | 
						|
 | 
						|
open Ctypes
 | 
						|
open PosixTypes
 | 
						|
open Foreign
 | 
						|
 | 
						|
type tm
 | 
						|
let tm = structure "tm"
 | 
						|
let (-:) ty label = field tm label ty
 | 
						|
let tm_sec   = int -: "tm_sec"   (* seconds *)
 | 
						|
let tm_min   = int -: "tm_min"   (* minutes *)
 | 
						|
let tm_hour  = int -: "tm_hour"  (* hours *)
 | 
						|
let tm_mday  = int -: "tm_mday"  (* day of the month *)
 | 
						|
let tm_mon   = int -: "tm_mon"   (* month *)
 | 
						|
let tm_year  = int -: "tm_year"  (* year *)
 | 
						|
let tm_wday  = int -: "tm_wday"  (* day of the week *)
 | 
						|
let tm_yday  = int -: "tm_yday"  (* day in the year *)
 | 
						|
let tm_isdst = int -: "tm_isdst" (* daylight saving time *)
 | 
						|
let () = seal (tm : tm structure typ)
 | 
						|
 | 
						|
let time = foreign "time" ~check_errno:true (ptr time_t @-> returning time_t)
 | 
						|
 | 
						|
let asctime = foreign "asctime" (ptr tm @-> returning string)
 | 
						|
 | 
						|
let localtime = foreign "localtime" (ptr time_t @-> returning (ptr tm))
 | 
						|
 | 
						|
let () = begin
 | 
						|
  let timep = allocate_n ~count:1 time_t in
 | 
						|
  let time = time timep in
 | 
						|
  assert (time = !@timep);
 | 
						|
  let tm = localtime timep in
 | 
						|
  Printf.printf "tm.tm_mon  = %d\n" (getf !@tm tm_mon);
 | 
						|
  Printf.printf "tm.tm_year = %d\n" (getf !@tm tm_year);
 | 
						|
  print_endline (asctime tm)
 | 
						|
end
 |