@@ -412,6 +412,35 @@ <h3>プログラム8.3 laston<a class="headerlink" href="#laston" title="Permali
412
412
< h2 > 9 章 ディレクトリ< a class ="headerlink " href ="#id37 " title ="Permalink to this headline "> ¶</ a > </ h2 >
413
413
< div class ="section " id ="id38 ">
414
414
< h3 > レシピ9.1 タイムスタンプを取得/設定する< a class ="headerlink " href ="#id38 " title ="Permalink to this headline "> ¶</ a > </ h3 >
415
+ < p > < a class ="reference external " href ="http://docstore.mik.ua/orelly/perl/cookbook/ch09_02.htm "> Getting and Setting Timestamps</ a > </ p >
416
+ < p > 時間の変換がちょっと面倒だ。</ p >
417
+ < div class ="highlight-haskell "> < div class ="highlight "> < pre > < span class ="kr "> import</ span > < span class ="nn "> System.Posix.Files</ span >
418
+ < span class ="kr "> import</ span > < span class ="nn "> System.Time</ span >
419
+ < span class ="kr "> import</ span > < span class ="nn "> System.Posix.Types</ span >
420
+ < span class ="kr "> import</ span > < span class ="nn "> System.Environment</ span >
421
+
422
+ < span class ="nf "> getTimes</ span > < span class ="ow "> ::</ span > < span class ="kt "> FilePath</ span > < span class ="ow "> -></ span > < span class ="kt "> IO</ span > < span class ="p "> (</ span > < span class ="kt "> ClockTime</ span > < span class ="p "> ,</ span > < span class ="kt "> ClockTime</ span > < span class ="p "> )</ span >
423
+ < span class ="nf "> getTimes</ span > < span class ="n "> fp</ span > < span class ="ow "> =</ span >
424
+ < span class ="kr "> do</ span > < span class ="n "> stat</ span > < span class ="ow "> <-</ span > < span class ="n "> getFileStatus</ span > < span class ="n "> fp</ span >
425
+ < span class ="n "> return</ span > < span class ="p "> (</ span > < span class ="n "> toct</ span > < span class ="p "> (</ span > < span class ="n "> accessTime</ span > < span class ="n "> stat</ span > < span class ="p "> ),</ span >
426
+ < span class ="n "> toct</ span > < span class ="p "> (</ span > < span class ="n "> modificationTime</ span > < span class ="n "> stat</ span > < span class ="p "> ))</ span >
427
+
428
+ < span class ="nf "> toct</ span > < span class ="ow "> ::</ span > < span class ="kt "> EpochTime</ span > < span class ="ow "> -></ span > < span class ="kt "> ClockTime</ span >
429
+ < span class ="nf "> toct</ span > < span class ="n "> et</ span > < span class ="ow "> =</ span > < span class ="kt "> TOD</ span > < span class ="p "> (</ span > < span class ="n "> truncate</ span > < span class ="p "> (</ span > < span class ="n "> toRational</ span > < span class ="n "> et</ span > < span class ="p "> ))</ span > < span class ="mi "> 0</ span >
430
+
431
+ < span class ="nf "> main</ span > < span class ="ow "> ::</ span > < span class ="kt "> IO</ span > < span class ="nb "> ()</ span >
432
+ < span class ="nf "> main</ span > < span class ="ow "> =</ span > < span class ="kr "> do</ span >
433
+ < span class ="p "> (</ span > < span class ="n "> file</ span > < span class ="kt "> :</ span > < span class ="kr "> _</ span > < span class ="p "> )</ span > < span class ="ow "> <-</ span > < span class ="n "> getArgs</ span >
434
+ < span class ="p "> (</ span > < span class ="n "> atime</ span > < span class ="p "> ,</ span > < span class ="n "> mtime</ span > < span class ="p "> )</ span > < span class ="ow "> <-</ span > < span class ="n "> getTimes</ span > < span class ="n "> file</ span >
435
+ < span class ="n "> toCalendarTime</ span > < span class ="n "> atime</ span > < span class ="o "> >>=</ span > < span class ="n "> print</ span >
436
+ < span class ="n "> toCalendarTime</ span > < span class ="n "> mtime</ span > < span class ="o "> >>=</ span > < span class ="n "> print</ span >
437
+ </ pre > </ div >
438
+ </ div >
439
+ < p > 参考</ p >
440
+ < ul class ="simple ">
441
+ < li > < a class ="reference external " href ="http://book.realworldhaskell.org/read/systems-programming-in-haskell.html "> File Modification Times</ a > </ li >
442
+ < li > < a class ="reference external " href ="http://hackage.haskell.org/packages/archive/old-time/latest/doc/html/System-Time.html#t:ClockTime "> System.Time</ a > </ li >
443
+ </ ul >
415
444
</ div >
416
445
< div class ="section " id ="id39 ">
417
446
< h3 > レシピ9.2 ファイルを削除する< a class ="headerlink " href ="#id39 " title ="Permalink to this headline "> ¶</ a > </ h3 >
0 commit comments