%表題   MISC1 (その他の基本関数下位パッケージ)
%
%履歴
%\Drireki{
%         91/12/17 塩谷雅人
%         92/04/22 林祥介   (4.1版)
%        }
%
\Dchapterhead
\label{timelib}

\section{概要}
時刻を扱うサブルーチンパッケージ.
このパッケージの説明では, 次の用語を用いる.
\begin{itemize}
  \item 1型の時刻(ITIME) -- 上5, 6桁が時, 3,4桁が分, 1,2桁が秒の1整数で
    時刻をあらわす. 例: 100930.
  \item 2型の時刻(ITT) -- 通しの秒数の1整数で時刻をあらわす.
    例: 36570.
  \item 3型の時刻(IH,IM,IS) -- 時, 分, 秒の3整数で時刻を表す.
    例: 10, 9, 30.
\end{itemize}

\section{サブルーチンのリスト}
\begin{tabular}{lp{10cm}}
  {\tt TIME12(ITIME,ITT)}   & 1型の時刻を2型の時刻に変換する. \\
  {\tt TIME13(ITIME,IH,IM,IS)} & 1型の時刻を3型の時刻に変換する. \\
  {\tt TIME21(ITIME,ITT)}   & 2型の時刻を1型の時刻に変換する. \\
  {\tt TIME23(IH,IM,IS,ITT)}   & 2型の時刻を3型の時刻に変換する. \\
  {\tt TIME31(ITIME,IH,IM,IS)} & 3型の時刻を1型の時刻に変換する. \\
  {\tt TIME32(IH,IM,IS,ITT)}   & 3型の時刻を2型の時刻に変換する. \\
  {\tt TIMEQ1(ITIME)} & 現在の1型の時刻を求める. \\
  {\tt TIMEQ2(ITT)} & 現在の2型の時刻を求める. \\
  {\tt TIMEQ3(IH,IM,IS)} & 現在の3型の時刻を求める. \\
  {\tt TIMEC1(CFORM,ITIME)} &
    {\tt ITIME}を{\tt CFORM}に従って表現して{\tt CFORM}で返す. \\
  {\tt TIMEC2(CFORM,ITT)} &
    {\tt ITT}を{\tt CFORM}に従って表現して{\tt CFORM}で返す. \\
  {\tt TIMEC3(CFORM,IH,IM,IS)} &
    {\tt IH,IM,IS}を{\tt CFORM}に従って表現して{\tt CFORM}で返す.
\end{tabular}

\vspace{1em}
{\tt CFORM}中で使えるキーとなる文字は,
{\tt 'H'} : 時, {\tt 'M'} : 分, {\tt 'S'} : 秒,
である. たとえば{\tt ITIME=100930} に対して{\tt CFORM='HH:MM:SS'}
と指定して{\tt TIMEC1}を呼ぶと{\tt CFORM='10:09:30'}が返される.

\section{サブルーチンの説明}
\label{timelib/sub/time12}
\subsection{TIME12/TIME13/TIME21/TIME23/TIME31/TIME32}
\begin{enumerate}
  \item 機能
  \begin{quote}
    時刻の型を変換する. \\
    {\tt TIME12} : 1型の時刻を2型の時刻に変換する. \\
    {\tt TIME13} : 1型の時刻を3型の時刻に変換する. \\
    {\tt TIME21} : 2型の時刻を1型の時刻に変換する. \\
    {\tt TIME23} : 2型の時刻を3型の時刻に変換する. \\
    {\tt TIME31} : 3型の時刻を1型の時刻に変換する. \\
    {\tt TIME32} : 3型の時刻を2型の時刻に変換する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL TIME12(ITIME,ITT)}   \\
    {\tt CALL TIME13(ITIME,IH,IM,IS)} \\
    {\tt CALL TIME21(ITIME,ITT)}   \\
    {\tt CALL TIME23(IH,IM,IS,ITT)}   \\
    {\tt CALL TIME31(ITIME,IH,IM,IS)} \\
    {\tt CALL TIME32(IH,IM,IS,ITT)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt ITIME} & {\tt (I)} & 1型の時刻.\\
      {\tt IH}    & {\tt (I)} & 時.\\
      {\tt IM}    & {\tt (I)} & 分.\\
      {\tt IS}    & {\tt (I)} & 秒.\\
      {\tt ITT}   & {\tt (I)} & 通しの秒数.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item なし.
  \end{enumerate}
\end{enumerate}

\subsection{TIMEQ1/TIMEQ2/TIMEQ3}
\label{timelib.sub.timeq1}
\begin{enumerate}
  \item 機能
  \begin{quote}
    現在の時刻を求める. \\
    {\tt TIMEQ1} : 現在の1型の時刻を求める. \\
    {\tt TIMEQ2} : 現在の2型の時刻を求める. \\
    {\tt TIMEQ3} : 現在の3型の時刻を求める.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt TIMEQ1(ITIME)} \\
    {\tt TIMEQ2(ITT)} \\
    {\tt TIMEQ3(IH,IM,IS)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt ITIME} & {\tt (I)} & 1型の時刻.\\
      {\tt IH}    & {\tt (I)} & 時.\\
      {\tt IM}    & {\tt (I)} & 分.\\
      {\tt IS}    & {\tt (I)} & 秒.\\
      {\tt ITT}   & {\tt (I)} & 通しの秒数.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item これらはシステムに依存したサブルーチンなので,
      正しく移植されていない可能性もある.
  \end{enumerate}
\end{enumerate}

\subsection{TIMEC1/TIMEC2/TIMEC3}
\label{timec1.sub.timec1}
\begin{enumerate}
  \item 機能
  \begin{quote}
    フォーマットを指定して時刻を文字列で表現する. \\
    {\tt TIMEC1} : 1型の時刻を文字列で表現する. \\
    {\tt TIMEC2} : 2型の時刻を文字列で表現する. \\
    {\tt TIMEC3} : 3型の時刻を文字列で表現する.
  \end{quote}
  \item 呼び出し方法
  \begin{quote}
    {\tt CALL TIMEC1(CFORM,ITIME)}  \\
    {\tt CALL TIMEC2(CFORM,ITT)} \\
    {\tt CALL TIMEC3(CFORM,IH,IM,IS)}
  \end{quote}
  \item パラメーターの説明
  \begin{quote}
    \begin{tabular}{llp{10cm}}
      {\tt ITIME} & {\tt (I)} & 1型の時刻.\\
      {\tt IH}    & {\tt (I)} & 時.\\
      {\tt IM}    & {\tt (I)} & 分.\\
      {\tt IS}    & {\tt (I)} & 秒.\\
      {\tt ITT}   & {\tt (I)} & 通しの秒数.\\
      {\tt CFORM} & {\tt (C*(*))} & 時刻のフォーマット.
        入力パラメータでもあり, 出力パラメーターでもある.
        {\tt CFORM}中で使えるキーとなる文字は,
        {\tt 'H'} : 時, {\tt 'M'} : 分, {\tt 'S'} : 秒, である.
        たとえば{\tt ITIME=100930} に対して{\tt CFORM='HH:MM:SS'}
        と指定して{\tt TIMEC1}を呼ぶと{\tt CFORM='10:09:30'}が返される.
    \end{tabular}
  \end{quote}
  \item 備考
  \begin{enumerate}
    \item 時刻のフォーマットの指定方法について, 正確には,
          キーとなる文字が最初に現れたところから最後に現れたところの
          間の部分をおきかえる. したがって例えば, {\tt 'HHHHH/MMMM'}と
          書くのと{\tt 'HAAAH/MBBM}と書くのは同じである.
  \end{enumerate}
\end{enumerate}

