Skip to content

Commit c83263a

Browse files
committed
add pleac 9.1
1 parent 839dbc8 commit c83263a

File tree

4 files changed

+94
-1
lines changed

4 files changed

+94
-1
lines changed

pleac.html

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -412,6 +412,35 @@ <h3>プログラム8.3 laston<a class="headerlink" href="#laston" title="Permali
412412
<h2>9 章 ディレクトリ<a class="headerlink" href="#id37" title="Permalink to this headline"></a></h2>
413413
<div class="section" id="id38">
414414
<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">-&gt;</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">&lt;-</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">-&gt;</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">&lt;-</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">&lt;-</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">&gt;&gt;=</span> <span class="n">print</span>
436+
<span class="n">toCalendarTime</span> <span class="n">mtime</span> <span class="o">&gt;&gt;=</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>
415444
</div>
416445
<div class="section" id="id39">
417446
<h3>レシピ9.2 ファイルを削除する<a class="headerlink" href="#id39" title="Permalink to this headline"></a></h3>

pleac.rst

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,38 @@ reverseする
410410
レシピ9.1 タイムスタンプを取得/設定する
411411
-----------------------------------------
412412

413+
`Getting and Setting Timestamps <http://docstore.mik.ua/orelly/perl/cookbook/ch09_02.htm>`_
414+
415+
時間の変換がちょっと面倒だ。
416+
417+
.. code-block:: haskell
418+
419+
import System.Posix.Files
420+
import System.Time
421+
import System.Posix.Types
422+
import System.Environment
423+
424+
getTimes :: FilePath -> IO (ClockTime, ClockTime)
425+
getTimes fp =
426+
do stat <- getFileStatus fp
427+
return (toct (accessTime stat),
428+
toct (modificationTime stat))
429+
430+
toct :: EpochTime -> ClockTime
431+
toct et = TOD (truncate (toRational et)) 0
432+
433+
main :: IO ()
434+
main = do
435+
(file:_) <- getArgs
436+
(atime, mtime) <- getTimes file
437+
toCalendarTime atime >>= print
438+
toCalendarTime mtime >>= print
439+
440+
参考
441+
442+
- `File Modification Times <http://book.realworldhaskell.org/read/systems-programming-in-haskell.html>`_
443+
- `System.Time <http://hackage.haskell.org/packages/archive/old-time/latest/doc/html/System-Time.html#t:ClockTime>`_
444+
413445
レシピ9.2 ファイルを削除する
414446
-----------------------------
415447

searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sources/pleac.txt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -410,6 +410,38 @@ reverseする
410410
レシピ9.1 タイムスタンプを取得/設定する
411411
-----------------------------------------
412412

413+
`Getting and Setting Timestamps <http://docstore.mik.ua/orelly/perl/cookbook/ch09_02.htm>`_
414+
415+
時間の変換がちょっと面倒だ。
416+
417+
.. code-block:: haskell
418+
419+
import System.Posix.Files
420+
import System.Time
421+
import System.Posix.Types
422+
import System.Environment
423+
424+
getTimes :: FilePath -> IO (ClockTime, ClockTime)
425+
getTimes fp =
426+
do stat <- getFileStatus fp
427+
return (toct (accessTime stat),
428+
toct (modificationTime stat))
429+
430+
toct :: EpochTime -> ClockTime
431+
toct et = TOD (truncate (toRational et)) 0
432+
433+
main :: IO ()
434+
main = do
435+
(file:_) <- getArgs
436+
(atime, mtime) <- getTimes file
437+
toCalendarTime atime >>= print
438+
toCalendarTime mtime >>= print
439+
440+
参考
441+
442+
- `File Modification Times <http://book.realworldhaskell.org/read/systems-programming-in-haskell.html>`_
443+
- `System.Time <http://hackage.haskell.org/packages/archive/old-time/latest/doc/html/System-Time.html#t:ClockTime>`_
444+
413445
レシピ9.2 ファイルを削除する
414446
-----------------------------
415447

0 commit comments

Comments
 (0)