uspTukubaiコマンドに関する様々な資料がここにあります。

 

 

魂内検索

DOCUMENTS

COMMAND

FORUM

UEC DOCS

VIDEO

 

ABC順リスト |  カテゴリ別リスト
動画説明

mdate

<概要>

mdate : 日付、週、月の処理

<書式>

 DIRECT-MODE

   日付  mdate <yyyymmdd>                  : 日付
         mdate -y <yyyymmdd>               : 曜日
         mdate -w <yyyymmdd>               : 週
         mdate <yyyywwdd>/±<dif>          : dif 日先の日付
         mdate -e <yyyywwdd>/±<dif>       : dif 日先までの日付を連続出力
         mdate <yyyymmdd1> <yyyymmdd2>     : 日付の差
         mdate -e <yyyymmdd1> <yyyymmdd2>  : 日付の範囲を連続出力
         mdate -ly <yyyymmdd>              : 前年同日
         mdate -lyw <yyyymmdd>             : 前年同曜日(364日前)
   週次  mdate <yyyyww>w                   : 週
         mdate -d <yyyyww>w                : 日付を7日間出力
         mdate <yyyyww>w/±<dif>           : dif 週先の週
         mdate -e <yyyyww>w/±<dif>        : dif 週先までの週を連続出力
         mdate <yyyyww1>w <yyyyww2>w       : 週の差
         mdate -e <yyyyww1>w <yyyyww2>w    : 週の範囲を連続出力
         mdate -ly <yyyyww>w               : 前年週
   月次  mdate <yyyymm>m                   : 月
         mdate -d <yyyymm>m                : 日付を1カ月分出力
         mdate <yyyymm>m/±<dif>           : dif 月先の月
         mdate -e <yyyymm>m/±<dif>        : dif 月先までの月を連続出力
         mdate <yyyymm1>m <yyyymm2>m       : 月の差
         mdate -e <yyyymm1>m <yyyymm2>m    : 月の範囲を連続出力
         mdate -ly <yyyymm>m               : 前年月

 FILTER-MODE

   日付  mdate -f -y <f>               : 曜日
         mdate -f <f>/±<dif>          : dif 日先の日付
         mdate -f -e <f>/±<dif>       : dif 日先までの日付に展開
         mdate -f <f1> <f2>            : 日付の差
         mdate -f -e <f1> <f2>         : 日付間の展開
         mdate -f <f1> +<f2>           : 日付の加算
         mdate -f -e <f1> +<f2>        : 日付の加算 展開
         mdate -f -ly <f>              : 前年日
         mdate -f -lyw <f>             : 前年同曜日
   週次  mdate -f -d <f>w              : 日付を1週分出力
         mdate -f <f>w/±<dif>         : dif 週先の週
         mdate -f -e <f>w ±<dif>      : dif 週先の週まで展開
         mdate -f <f1>w <f2>w          : 週の差
         mdate -f -e <f1>w <f2>w       : 週の展開
         mdate -f <f>w +<f2>           : 週の加算
         mdate -f -e <f>w +<f2>        : 週の加算展開
         mdate -f -ly <f>w             : 前年週
   月次  mdate -f -d <f>m              : 日付を1カ月分出力
         mdate -f <f>m/±<dif>         : dif 月先の月
         mdate -f -e <f>m ±<dif>      : dif 月先の月まで展開
         mdate -f <f1>m <f2>m          : 月の差
         mdate -f -e <f1>m <f2>m       : 月の展開
         mdate -f <f>m +<f2>           : 月の加算
         mdate -f -e <f>m +<f2>        : 月の加算展開
         mdate -f -ly <f>m             : 前年月

Version : Sun Apr 21 20:45:55 JST 2013

<備考>

週の機能は MDWEEKTABLE が存在するときのみ動作します。
(パスはハードコードされています。デフォルト /home/usp/TBL/MDWEEKTABLE.USP)
MDWEEKTABLE.USP は日付、週からなる2フィールドのファイルが前提となります。
また週は数字のみで構成されることが前提です。

<例1>

日付、曜日、週、月の情報を出力
$ mdate 20090912
20090912                 <-- そのまま出力
$ mdate -y 20090912
6                        <-- 1:月 2:火 3:水 4:木 5:金 6:土 7:日
$ mdate 200901w
200901                   <-- そのまま出力
$ mdate 200909m
200909                   <-- そのまま出力
$ mdate -d 200901w
20090223 20090224 20090225 20090226 20090227 20090228 20090301
$ mdate -d 200909m
20090901 20090902 20090903 .... 20090927 20090928 20090929 20090930

<例2>

dif先の日付、週、月の情報を出力
$ mdate 20090912/+5
20090917
$ mdate 200907w/+5
200912
$ mdate 200909m/+5
201002

<例3>

dif先までの連続した日付、週、月の情報を出力
$ mdate -e 20090912/+5
20090912 20090913 20090914 20090915 20090916 20090917
$ mdate -e 20090912/-5 <-- 小さい日から順に出力
20090907 20090908 20090909 20090910 20090911 20090912
$ mdate -e 200909w/+5
200909 200910 200911 200912 200913 200914
$ mdate -e 200909w/-5  <-- 小さい週から順に出力
200904 200905 200906 200907 200908 200909
$ mdate -e 200909m/+5
200909 200910 200911 200912 201001 201002
$ mdate -e 200909m/-5  <-- 小さい月から順に出力
200904 200905 200906 200907 200908 200909

<例4>

日付、週、月の差を出力
$ mdate 20090917 20090912
5
$ mdate 200909w 200902w
7
$ mdate 201002m 200909m
5

<例5>

日付、週、月の範囲を連続出力
$ mdate -e 20090912 20090917
20090912 20090913 20090914 20090915 20090916 20090917
$ mdate -e 20090917 20090912 <-- 小さい日から順に出力
20090912 20090913 20090914 20090915 20090916 20090917
$ mdate -e 200909w 200907w
200907 200908 200909
$ mdate -e 200907w 200909w   <-- 小さい週から順に出力
200907 200908 200909
$ mdate -e 200909m 201002m
200909 200910 200911 200912 201001 201002
$ mdate -e 201002m 200909m   <-- 小さい月から順に出力
200909 200910 200911 200912 201001 201002

<例6> フィルターモード

日付、週、月の情報を挿入
$ cat date_data
A 20090901 B
A 20090902 B
A 20090903 B
$ mdate -f -y 2 date_data <-- 曜日の挿入
A 20090901 2 B
A 20090902 3 B
A 20090903 4 B

$ cat week_data
A 200901 B
A 200902 B
A 200903 B
$ mdate -f -d 2w week_data
A 200901 20090901 ... 20090907 B
A 200902 20090908 ... 20090914 B
A 200903 20090915 ... 20090921 B

$ cat month_data
A 200909 B
A 200910 B
A 200911 B
$ mdate -f -d 2m month_data
A 200909 20090901 ... 20090927 20090928 20090929 20090930 B
A 200910 20091001 ... 20091027 20091028 20091029 20091030 20091031 B
A 200911 20091101 ... 20091127 20091128 20091129 20091130 B

<例7> フィルターモード

dif先の日付、週、月の情報を挿入
$ cat date_data
A 20090901 B
A 20090902 B
A 20090903 B
$ mdate -f 2/+5 date_data
A 20090901 20090906 B
A 20090902 20090907 B
A 20090903 20090908 B
$ mdate -f 2/-5 date_data
A 20090901 20090827 B
A 20090902 20090828 B
A 20090903 20090829 B

$ cat week_data
A 200901 B
A 200902 B
A 200903 B
$ mdate -f 2w/+5 week_data
A 200901 200906 B
A 200902 200907 B
A 200903 200908 B
$ mdate -f 2w/-5 week_data
A 200901 200848 B
A 200902 200849 B
A 200903 200850 B

$ cat month_data
A 200909 B
A 200910 B
A 200911 B
$ mdate -f 2m/+5 month_data
A 200909 201002 B
A 200910 201003 B
A 200911 201004 B
$ mdate -f 2m/-5 month_data
A 200909 200904 B
A 200910 200905 B
A 200911 200906 B

<例8> フィルターモード

dif 先までの連続した日付、週、月の情報を挿入
$ cat date_data
A 20090901 B
A 20090902 B
A 20090903 B
$ mdate -f -e 2/+5 date_data
A 20090901 20090902 20090903 20090904 20090905 20090906 B
A 20090902 20090903 20090904 20090905 20090906 20090907 B
A 20090903 20090904 20090905 20090906 20090907 20090908 B
$ mdate -f -e 2/-5 date_data
A 20090827 20090828 20090829 20090830 20090831 20090901 B
A 20090828 20090829 20090830 20090831 20090901 20090902 B
A 20090829 20090830 20090831 20090901 20090902 20090903 B

$ cat week_data
A 200909 B
A 200910 B
A 200911 B
$ mdate -f -e 2w/+5 week_data
A 200909 200910 200911 200912 200913 200914 B
A 200910 200911 200912 200913 200914 200915 B
A 200911 200912 200913 200914 200915 200916 B
$ mdate -f -e 2w/-5 week_data
A 200909 200905 200906 200907 200908 200909 B
A 200910 200906 200907 200908 200909 200910 B
A 200911 200907 200908 200909 200910 200911 B

$ cat month_data
A 200909 B
A 200910 B
A 200911 B
$ mdate -f -e 2m/+5 month_data
A 200909 200910 200911 200912 201001 201002 B
A 200910 200911 200912 201001 201002 201003 B
A 200911 200912 201001 201002 201003 201004 B
$ mdate -f -e 2m/-5 month_data
A 200904 200905 200906 200907 200908 200909 B
A 200905 200906 200907 200908 200909 200910 B
A 200906 200907 200908 200909 200910 200911 B

<例9> フィルターモード

日、週、月の差を挿入
$ cat date_data2
A 20091001 20090901 B
A 20091003 20090902 B
A 20091005 20090903 B
$ mdate -f 2 3 date_data2
A 20091001 20090901 30 B
A 20091003 20090902 31 B
A 20091005 20090903 32 B

$ cat week_data2
A 200909 200908 B
A 200911 200913 B
A 200915 200915 B
$ mdate -f 2w 3w week_data2
A 200909 200908 1 B
A 200911 200913 -2 B
A 200915 200915 0 B

$ cat month_data2
A 200909 200810 B
A 200911 200811 B
A 201001 200812 B
$ mdate -f 2m 3m month_data2
A 200909 200810 11 B
A 200911 200811 12 B
A 201001 200812 13 B

<例10> フィルターモード

日、週、月の差を展開挿入
$ cat date_data2
A 20090905 20090901 B
A 20090904 20090902 B
A 20090906 20090903 B
$ mdate -f -e 2 3 date_data2
A 20090905 20090901 20090901 20090902 20090903 20090904 20090905 B
A 20090904 20090902 20090902 20090903 20090904 B
A 20090906 20090903 20090903 20090904 20090905 20090906 B

$ cat week_data2
A 200901 200903 B
A 200903 200901 B
A 200904 200906 B
$ mdate -f -e 2w 3w week_data2
A 200901 200903 200901 200902 200903 B
A 200903 200901 200901 200902 200903 B
A 200904 200906 200904 200905 200906 B

$ cat month_data2
A 200901 200810 B
A 200903 200811 B
A 200904 200812 B
$ mdate -f -e 2m 3m month_data2
A 200901 200810 200810 200811 200812 200901 B
A 200903 200811 200811 200812 200901 200902 200903 B
A 200904 200812 200812 200901 200902 200903 200904 B

<例11> フィルターモード

日付、週、月を加算して挿入
$ cat date_data4
A 20090901 1 B
A 20090902 2 B
A 20090903 3 B
$ mdate -f 2 +3 date_data4
A 20090901 1 20090902 B
A 20090902 2 20090904 B
A 20090903 3 20090906 B

$ cat week_data4
A 200911 1 B
A 200912 2 B
A 201001 3 B
$ mdate -f 2w +3 week_data4
A 200911 1 200912 B
A 200912 2 200914 B
A 201001 3 201004 B

$ cat month_data4
A 200911 1 B
A 200912 2 B
A 201001 3 B
$ mdate -f 2m +3 month_data4
A 200911 1 200912 B
A 200912 2 201002 B
A 201001 3 201004 B

<例12> フィルターモード

日付、週、月を加算展開して挿入
$ cat date_data4
A 20090901 1 B
A 20090902 2 B
A 20090903 3 B
$ mdate -f -e 2 +3 date_data4
A 20090901 1 20090901 20090902 B
A 20090902 2 20090902 20090903 20090904 B
A 20090903 3 20090903 20090904 20090905 20090906 B

$ cat week_data4
A 200911 1 B
A 200912 2 B
A 201001 3 B
$ mdate -f -e 2w +3 week_data4
A 200911 1 200911 200912 B
A 200912 2 200912 200913 200914 B
A 201001 3 201001 201002 201003 201004 B

$ cat month_data4
A 200911 1 B
A 200912 2 B
A 201001 3 B
$ mdate -f -e 2m +3 month_data4
A 200911 1 200911 200912 B
A 200912 2 200912 201001 201002 B
A 201001 3 201001 201002 201003 201004 B