日付計算系の質問はたくさんありましたがこのタイプが
無かったんで質問させていただきます。

やりたいことは題名そのまんまなんですが、具体的に言う
と、UNIX(今使ってるのがHP-UX11.0)上のバッチシェル
で、前日の日付を取得したいのです。できれば中間ファ
イル(一時ファイル)などを生成せずにシェル内で計算を
済ませたいのですが、何か方法はないのでしょうか。

(Ex.)
現在の日付   2002年1月1日
取得したい日付 2001年12月31日

具体的な方法とか書いてあるとさらにうれしいのですが・・・

それではよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

環境変数 TZ をいじることで実現できるはずです。



お使いの環境は日本標準時(TZ が JST-9)だと想定して話をします。

環境変数 TZ の -9 は、グリニッジ標準時との ずれ を表しているわけですが、
これを一日前にずらしてしまいます。

具体的には、こんな感じ。

% env TZ=JST+15 date


GNU のコマンドが席巻するまでは、割と有名だったやり方です。
もうひとつのやり方として、GNU の date をインストールして No.1 の回答の
ようにする、という手もありますね。
    • good
    • 0
この回答へのお礼

上記のコマンドを実行したらきっちり前日の日付が出てきました。どうやら、条件を満たすのはこれが一番みたいですね。
情報提供ありがとうございました。

お礼日時:2001/12/13 17:50

他の方がおっしゃるとおり、 GNU の date をインストールしてよい環境であれば、それを使うのが一番楽だと思います。


ただ、HP-UX のデフォルトのdate だと、現在日付しか扱えないんですよね。

ニュースグループの fj.unix.shells で、1999年の7月頃この話題が出ていたようです。

下のサイトの[保存された記事を読む]でグループ名にfj.unix.shells 、期間に199907 を指定して見てみてください。

参考URL:http://queen.heart.ne.jp/cgi-bin/queen4
    • good
    • 0
この回答へのお礼

情報提供ありがとうございます。
参照先の情報はほぼGNU版dateとTZを使ったやり方しか載っていませんでした。
それではかなり参考になりました。

お礼日時:2001/12/13 17:48

HP-UXは使用していないので判りませんが、Linux上では



date --date '1 days ago'

とやると昨日の日付が取得出来ます。
オプション等が異なるかもしれませんが、dateコマンドのmanを引くと同様のオプションがあるかもしれませんのでご覧下さい。
後は出力形式のオプションを付加すればお望みの形で出力出来ると思うのですが…。

この回答への補足

回答ありがとうございます。
HP-UX上では残念ながら上記の書式はサポート
されていませんでした。
(dateはあくまで現在の日付の表示、又は日付設定)
なので引き続きアドバイスか何か遭ったらよろしくお願いします。

補足日時:2001/12/13 11:44
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QEXCELにて、同一日付であれば空白にしたい

EXCELにて、同一日付であれば空白にしたい
EXCELにて、同一日付であれば空白にしたいのですが、できればVBAを使用せず実現したい。
ヒントをお願いします

Aベストアンサー

回答No2です。ダブった日付を白文字にするときにページが変わったところで空白になるのは避けたいとのことでしたらページの区切りを求める関数はありませんので、例えば1ページが49行で50行のところが次のページになるなどのことが判っていればA2セルから下方を選択してからの条件付き書式の設定で入力する式は次のようにすることでよいでしょう。

=AND(MOD(ROW(),50)<>0,A2=A1)

QHP-UX11.0 プロセスのメモリ使用量のしらべかた

MPI処理するプログラムのプロセス毎のメモリ使用量を調査したいのですが、以下の調査方法ではログがうまくのこりません。
以下の手順でSolaris8はうまくできます。
<手順>
% script > log
% top -s 1 を実行。
ほかの端末エミュレータでプログラムを実行。
プログラム終了後topを実行している端末エミュレータで、Ctrl+dでscriptの終了。ログの確認を

% more log
でプロセス毎のメモリ使用量を調べる。

以上なのですが、more でみると文字化けしてしまいます。
ほかにプロセス毎のメモリを調べる方法をご存知でしたら教えていただきたいと思います。宜しくお願い致します。

Aベストアンサー

% top -s 1 -f log
% more log
ではいかがでしょうか?
あと可能性として(?)、予め以下が必要だったりとか?
% export LANG=C

QWORD差し込み印刷:日付の処理 - EXCELが空欄だと今日の日付が差し込まれてしまう

WORDの差し込み印刷について質問させてください。

EXCELのデータで日付を入れている列があります。この列に空欄がある(つまり日付が入力されていない)と、差し込み先のWORDのほうで、今日の日付が出てしまいます。

EXCELのデータが空欄の場合には、WORDの方に今日の日付を出さない(空欄のままにしておく)方法はありますか?

OSはWinXP, WORDとEXCELは2003を使っています。

よろしくお願いします。

Aベストアンサー

Word2002で確認したところ、質問と同じようになりました。
フィールドコードについては詳しくありませんが、消すことができました。
日付が空欄のところの差し込みフィールドでマウス右クリックしてフィールドコードの表示/非表示をクリックして表示させると
{MERGEFIELD"フィールド名"}となっていると思います。
1方法はココの”フィールド名"を削除すれば日付は表示されません。
もう一つの方法はフィールドを右クリックしてフィールドの編集を選択します。「フィールド」ダイアログボックスが現れます。
フィールドの種類から「差し込み印刷」を選択し、フィールドの名前から「If」を選択して条件式を入力する。
フィールドコードは
「If 式1 演算子 式2 Trueの場合の文字列 Falseの場合の文字列」
ここに
「If 日付のフィールド名<>"" "yyyy/mm/dd" ""」
というのを入力したところ表示されないようになりました。
日付のフィールドがブランクでない場合はyyyy/mm/dd、そうでなければブランクという条件式です
差し込みの1枚目のフィールドで条件式を入れておけば、日付空欄のところはすべて空欄にできると思います。
試しにチャレンジしてみて下さい。

Word2002で確認したところ、質問と同じようになりました。
フィールドコードについては詳しくありませんが、消すことができました。
日付が空欄のところの差し込みフィールドでマウス右クリックしてフィールドコードの表示/非表示をクリックして表示させると
{MERGEFIELD"フィールド名"}となっていると思います。
1方法はココの”フィールド名"を削除すれば日付は表示されません。
もう一つの方法はフィールドを右クリックしてフィールドの編集を選択します。「フィールド」ダイアログボックスが現れます。
...続きを読む

QUNIX:シェルをshからkshへ替えられない

下記の方法で、shからkshへ切り替えるという設問ですが、shのままkshになりません。

1)echoコマンドで、export ENV=$HOME/Env/ksh_envを.profileへ追加
2)Envディレクトリ作成後、ksh_envへ下記を追加
  Set –o noclobber, set-o ignoreeof, set –o vi
3) chmodコマンドで、ksh_envを777変更
4)echoコマンドで、$SHELL=/bin/ksh
5) echoコマンドで、$SHELLを呼ぶと、kshになっている。

何を間違えているか教えて頂けますか?
宜しくお願いします。

Aベストアンサー

ログインシェルを変えたい、という話なら「 man chsh 」
単にkshを実行したいだけなら、通常通り kshを実行。

どちらにしても、環境変数SHELLはシェルを実行したときに自動で設定されるものです。
変更しても無意味です。
4)は不要です。

QExcelで日付を入力したら締日を表示させる

Excelで経費の支払いの表を作ろうとしています。

A列のセルに日付を入力し、
A列に入力した日付が1日~15日までなら
B列のセルにその月の最終日の日付を
16日~31日までなら
B列に翌月の15日と自動で表示されるようにするには
どうすればいいのでしょうか?


詳しい方、教えてください。
ちなみに使用しているExcel2010です。

Aベストアンサー

ごめ。よく読んだら半月ずれてましたな。

=IF(DAY(A1)<15,DATE(YEAR(A1),MONTH(A1)+1,1)-1,DATE(YEAR(A1),MONTH(A1)+1,15))

MONTH(A1)+1で「13月」とか出てきちゃいそうですが、Excelはちゃんと「翌年1月」と計算しなおしてくれますから大丈夫です。

QUNIX(Bシェル)のプロンプトについて

Bシェルのプロンプトの設定は環境変数PS1に変えたい文字列を入れればOKですが、現在自分のいるディレクトリ名を表示させたい場合はどのようにしたらいいでしょうか。
PS1="["`pwd`"]" などと設定してもディレクトリが変わったらその設定したときのディレクトリ名のままです。
 また、ユーザ名も表示したいのですがsuコマンドでユーザ名を切り替えた場合プロンプトに表示させたユーザ名も変更させることはできるのでしょうか?

Aベストアンサー

純粋な sh でそれをやれとは酷な要求ですねぇ。

まず、su に関しては、最悪でも /usr/bin (unix によっては /bin ?)
より前のパスに、su っていう名前のシェルスクリプトを置いて、
適当にいじればいいかと思います。こっちは不可能ではない。

でも、cd は sh の仕様によっては無理かもしれません。シェルス
クリプトでは、親のディレクトリを変更できません。alias 機能が
あって、cd を上書きできたとして、本来の cd を実行できる機能
がないと、やはりつまづきます。最近の sh なら、alias に似た
function 機能がありますが、例えば SunOS の sh だと、cd コマ
ンドの上書きはできないようです。FreeBSD の sh と、Laser5
linux の bsh なら、次のようにできると思います。
cd () { command cd $1; PS1="`pwd` "; }

QEXCELの日付データの比較

EXCELの日付データについての質問です。

たとえば、あるテキストデータでH20.7.19とあったとします。
それとEXCELの日付データにもH20.7.19があったとします。

テキストデータのH20.7.19をEXCEL側に貼り付け、EXCELの日付データH20.7.19と比較させ、答え0(誤差0)を返してもらう方法はありますでしょうか?

宜しくお願いいたします。

Aベストアンサー

こんにちは
DAYS360(開始日,終了日,方式)という関数で日数の差異を
求められます。

A1にテキストデータ H20.7.19
A2にエクセルデータ H20.7.19

があったとします。
=DAYS360(A1,A2)
で差異が0で返ってきます。 0じゃ無かったら別のものですね。

方式はヨーロッパ方式(TRUE)、アメリカNASD方式(FALSE)とか
書いてありましたが、違いはようわかりませんww
付けなくてもいいかとw

適当ですが、ご参考まで^^;

QUNIXシェル内での日付計算

UNIX(今使ってるのがHP-UX11i)上のバッチシェルで、
指定した日数分の前の日付を取得したいのですが、
何か方法はないでしょうか。


(例)
現在の日付: 20060511
指定した日数: 10(MAX値は100程度)

取得する日:20060501

Aベストアンサー

hpの技術情報によると、HP-UXなら参考URLの方法が使えるみたいです。

参考URL:http://www.unixguide.net/hp/faq/5.13.2.shtml

Qexcel,word 印刷した日の日付

excel,word文書を印刷したとき、その印刷日の日付を印字させるためにはexcel,word各々
どのようなことをすればよかったでしょうか。

Aベストアンサー

<Excelでの編集方法>
 メニューの「ファイル」-「ページ設定」で
 「ヘッダー/フッター」タブを選択。
 上に表示したい場合は「ヘッダーの編集」ボタン。

 編集画面の上に「日付の挿入」ボタン(カレンダーみたいなボタン)があるので
 それを押せば日付入力できます

<Wordでの編集方法>
 メニューの「表示」-「ヘッダー/フッター」を選択すると
 ヘッダーとフッターが点線で囲まれます。
 お好きなほうを選択し「日付の挿入」ボタンを押せば表示されるようになりますよ。

Qシェルの中から他のシェルを呼び出す

例えば、ひとつのシェルファイル( aaa.sh )の中に、
-------------------------
#!/usr/bin/csh
set HOME=/home/test/tmp
bbb.sh
-------------------------
と記述した場合、bbb.shで変数$HOMEを使いたいと思いましたが、
使えないようです。(HOME: 未定義の変数と表示されます)
どなたか、これ以外の方法で、このように
シェルからほかのシェルを呼び出して、変数も引き継がれるような方法ご存知ないでしょうか?
多分こーやれば、こうなるかも!みたいなご回答でも結構ですので情報提供をお願いします。

どうぞ宜しくお願い致します。

Aベストアンサー

たぶん環境変数は引き継がれます。
setenvを使えばいいように思います?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング