
.cgiのスケジュール管理システムを編集中です(perlと連動)。
自分自身が作ったものではなく引き継ぎでやっております。
現在管理確認/表示画面にて
月曜~土曜日までしかなく、日曜日だけ日付けも曜日も存在しません。
日曜日をがおそらく省かれていてる(非表示にされている)状況です。
これは今まで日曜日が定休日だったからです。日曜日も営業日として追加するのが目標です。
日曜日を表示さすのはどうしたらいいのでしょうか?
.cgiは初心者のため。。。何十時間かけて調べたりいじってみたのですが、理想の答えもどれだけ調べても見つからず、
自分で触ってもどうにもならずもうお手上げです。。。
色々調べていたら「$en」で非表示にするやり方がある事を知り、
編集しているcgi内に探しましたがこのようなものはありませんでした。。。
おそらく違う方法で日曜日が非表示になっているかと。。。
*ログイン後、管理設定では日曜日も表示され、予定を入れる事が出来るのですが、
実際の確認画面には表示されません。
ちょっと説明不足かもしれませんが。。。。
よろしくお願い致します。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
おそらく、その 「"if"とか"for"を使った」中に、#1で書いたような構造で、連続的に日付けを変更してて出力している(ただし、日曜日は出力していない)ものがあります。
これには、プログラムの動作を知ることしか、方法はありません。
<td> </td><td align=center>Mon</td><td align=center>Tue</td><td align=center>Wed</td><td align=center>Thu</td><td align=center>Fri</td><td align=center>Sat</td><td align=center>Sun</td>
これにSunを付け加えた、という程度の単純なやりかたでは無理です。
たとえば
if($first != 0){
この$firstが意味するものは?単語から考えると「最初」ですが、何の最初?
if(!$hflag){
この$hflagが意味するものは?
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
$m_f=sprintf("%02d",$mday);
ということから、この$mdayは「本日の日付け」であって、表示される1週間の日付けでは無いように思えます。
No.5
- 回答日時:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
の意味は、
"Perl time関数"( https://www.google.co.jp/search?q=perl%20time%20 … )などで検索します。
time関数は、1970年1月1日 00:00:00 UTCからの秒数を返します。
loclatime関数
秒数を
(秒,月(0-11),時間(0-24),日(1-31),月(0-11),年(-1970/1/1/0:00),曜日(0-6),年初からの日数,サマータイムの時間)の配列にします。
よって@TM=localtime();で、$TM{0]と呼び出しても構わないが、いっそのこと関数のリストに直接代入しているだけ
($sec, $min, $hour, $mday, $mon,$year, $wday, $yday, $isdst)=localetime();
ここで、
@Weeks = ("日","月","火"・・・・"土");
とでもしておいて、
$Weeks[$wday]には、日本語の曜日が入っているはず。
日にちは、すでに$mdayに入っている。
No.4
- 回答日時:
日付は mdayですよ。
これは正味1~31の数値が入ります。
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =localtime(time);
$year += 1900;
print "$sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst\n";
で、それぞれに入っている値は調べられます。
この回答への補足
御丁寧に何度もご回答ありがとうございます。
mdayで検索かけると、
例1:
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
$mon++;
$year=$year+1900;
など
例2:
#適用年月日:<input type="text" name="year" value="$year" size=4>年<input type="text" name="mon" value="$mon" size=4>月<input type="text" name="day" value="$mday" size=4>日 <input type="text" name="hour" value="$hour" size=4>時<br>
など
例3:
$col=0;
$m_f=sprintf("%02d",$mday);
しか出てこなくて、
おそらくこれだけだと全部表示される、しかしどこかで一部(日曜の日付)を省くようにでも設定されている?と思っているのですが。。。
らしきものがまったく見当たらないんですよね。。。
ちなみに
上記の1番目(例:1)のものの下に
print "$sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst\n";
と挿入して実行してみたら、
通常の表ではなく、htmlのソースみたいなものが出てきて、なんらかのヒントになるか??と思いじっと見ていたのですが、
通常表示される表のソース版って感じでした。。。
if とかで一部日付(日曜日の)を省く設定でもされているのかな。。。と思いつつも、
いくら見ても。。。らしきものが。。。。
しかし唯一怪しいと思っているのは、
緑文字で、メモのような感じで
「# (日:0)月:1~土:6までで設定」
と書いている部分なのですが、
前後見ても、
"if"とか"for"を使った
例1:
if($first != 0){
や
例2:
if(!$hflag){
や
例:3
if($col != 0){
$hflag=0;
#print @ho;
foreach(@ho){
#print "[".$_."]";
#print "{".$i."} ";
if($_ == $i){
#print " match ";
$hflag=1;
last;
}
}
#print "¥r¥n";
などのものばかりで。。。
「# (日:0)月:1~土:6までで設定」
とこのスクリプトの中にメモがあるという事は絶対にカギはどこかにあると思うのですよね。。。。
No.3
- 回答日時:
>色々調べていたら「$en」で非表示にするやり方がある事を知り、
$en・・・なんでしょうね。単にスカラー変数ですから、その指定がそのまま他のプログラムで使えることは、まずありえません。
time関数で得られる値をloclatimeに渡し、それから帰ってくる値から、曜日の配列から曜日を取り出す仕組みを理解してください。
($sec,$min,$hour,$mday,$month,$year,$wday,$stime) = localtime(time());
$wday は、0~6の数値で与えられていますから
@WD = ("日曜日","月曜日"・・・・・);
というリストを用意しておけば
$WD[$wday] が$wday番目の値になりますね。
ネットで探すのは大変です。特に、配布されているプログラムを探してもダメですよ。探すなら、リファレンスです。
Perlは、様々な書き方が出来るプログラム言語です。開発者の数だけ書き方があるなんて揶揄されるくらい。ですから他人の書いたプログラムは、たのプログラムへの参考にするには、しっかりした基礎知識が必要です。
>.cgiのスケジュール管理システムを編集中です(perlと連動)。
と書かれているだけで、状況はわかります。(^^)
Perlで書かれたスケジュール管理CGI・・・のことでしょうね。
この回答への補足
御丁寧にありがとうございます。
($sec,$min,$hour,$mday,$month,$year,$wday,$stime) = localtime(time());
は調べていたら意味はわかったのですが。。。
そこから@WD=
というのも発見し、大半はそう書かれている中、私がいじっているものは
<td> </td><td align=center>Mon</td><td align=center>Tue</td><td align=center>Wed</td><td align=center>Thu</td><td align=center>Fri</td><td align=center>Sat</td><td align=center>Sun</td>
</tr>
EOM
$tmax=@TIME;
$j=0;
など
$table=<<EOM;
<table border="0" class="tb" cellpadding=4 width="1100">
<tr bgcolor=¥"#cccccc¥">
<td width="50" bgcolor="#ffffff"> </td>
<td width="150" align=center>
Mon
</td>
<td width="150" align=center>
Tue
</td>
<td width="150" align=center>
Wed
</td>
<td width="150" align=center>
Thu
</td>
<td width="150" align=center>
Fri
</td>
<td width="150" align=center>
Sat
</td>
<td width="150" align=center>
Sun
</td>
</tr>
EOM
$timemax=@TIME;
$m_f=sprintf("%02d",$mon);
など
@w=('Mon','Tue','Wed','Tur','Fri','Sat','Sun');
@wno=('1','2','3','4','5','6','0');
$i=0;
などで。。。
日曜日自体は追加出来たのですが、
実際の下に日付けが書いているのですが、
Sunという列は追加出来た中、日付が出ない状況です。。。
やはりネットで探すのも難しいのですね。。。
ちなみにおそらく仰る通り、perlで書かれた.cgiスケジュール管理だと思います。
もう一つperlと書いている.plファイルもアップして動いていると思います。
もう一つのファイルで時間の定義など時間の追加や、スケジュールの内容の追加などは
簡単に出来るのですが。。。今回は難問です。。。
時にhtmlは触っていたり、以前このスケジュール管理の
予定の内容を追加や予定内容によって色を変更や時間の追加などはなんとか形に出来、
基礎はない中、今までなんとか色々更新/変更出来てきたのですが。。。
今回はどうやらそう簡単にはいかなさそうですね。。。(涙)
No.1
- 回答日時:
これだけの情報では、何もわかりません。
そのソースコードをここに貼るわけにもいかないでしょうから
・あなたがプログラミング技術を高める(時間はかかるが、費用はあなたの給料分だけ)
・(専門業者を含め)詳しい人に頼むか(費用はかかるが、時間は短縮できる)
ということになるのでは。
その内容から、考えられるパターンがいくつもあります。
週毎のループ {
月~土のループ{
1日分の表示
}
}
という構造だと、最初から対象外です。内側のループを月~日にする必要があります
開始から終了までループ {
if(日曜でない){
1日分の表示
}
}
とか
開始から終了までループ {
if(日曜){ next ;}
1日分の表示
}
とかなら、日曜でも表示するように、プログラムの流れを変更します。
表示もそうですが、他の箇所も確認する必要があります。
・日曜にデータを入力すると、エラーになるように作られているかもしれません
・保存データの構造として、日曜日が指定できないかもしれません。
御丁寧にありがとうございます。
そうですよね。。。
今までこれ以外の内容はなんとか更新出来ていたので。。。
悔しい現実です。。。
ご回答ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1桁の日付に0を付ける
-
日付の差分の求め方(日、分)
-
JSONで文字列が長い時
-
セレクトメニューで2つの項目...
-
「*:*」って何を意味するのでし...
-
Application.ScreenUpdating = ...
-
子windowsからsubmit()後にclos...
-
メモリをアドレスを直接指定し...
-
formで特定のinputを送信しない...
-
C言語のflagの使い方が分かりま...
-
FindFirst を複数条件で検索
-
シェルスクリプトで、空白(ス...
-
MSXMLでの属性の存在確認法
-
Python - Excel で Webからデー...
-
I2C接続のLCDディスプレイを使う
-
PHP+SQLiteでmax(id)が使えない?
-
VBA他のブックから値のみ貼付す...
-
【メモリ不足で落ちる(python)】
-
awk の int()に関数について
-
テキストファイルの読み込み
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付の比較について
-
前日の日付取得するには?
-
1桁の日付に0を付ける
-
日付の差分の求め方(日、分)
-
パールスクリプトのif else文に...
-
月見る月はこの月の月
-
VBAでオーバーフローが出て困っ...
-
「型が一致しません」のエラー...
-
Cookieの有効期限について
-
CSVファイルに出力
-
perl セレクトメニューを ↓の...
-
Perlの日付の比較に関して
-
日齢計算プログラム
-
年月日の数値化?
-
perlでcheckboxがうまく整理で...
-
ローカルだと改行されるのに、...
-
Schemeのプログラミング うる...
-
Perlの乱数について
-
大至急お願いします。出力で悩み。
-
うるう年の出し方
おすすめ情報