ラウンジの最終更新日を最初に書き込んだ人の日時にするには?

[上に] [前に] [次に]
匿名希望 1998/10/21(水) 23:46:55
ラウンジを利用させていただいています。
以前ラウンジで、「最終発言者」とは別に「最初の質問者」を表示したいのですが?という質問がありましたが、それと同じように、最終更新日の部分を最初に書き込んだ人の日時に出来ないものでしょうか。
ここでのポイントは、年月日だけじゃなくて、その後の(曜日)時分もいっしょにつけれないか??ということです。
出来れば、表示部分は、
例 98年09月01日(日)11時54分
の様にです。
もしご教授いただけたら幸いです。


B-Cus 1998/10/22(木) 02:29:13
この質問もそうですが、

> ラウンジの一覧表示で、項目の並び替えは出来ますか?また書き込み数
> (○○件)の部分を別な項目として独立させるには??

> ラウンジの最終更新日を最初に書き込んだ人の日時にするには?

などなど、できれば自分でできるだけソースをいじってみて、
 「ここをこういう風にしたがうまくいかない」
とか、あるいはソースを示さないまでも
 「こういうアルゴリズムだとうまくいきそうなんですがどうでしょう?」
と質問した方がレスも付きやすいと思いますよ。

最初から頼るのではなく、自分なりに努力したことを
ちゃんとアピールしてくれる人には、アドバイスしたくなります。

まぁ個人的な意見ですけど、できればよろしく。


> その後の(曜日)時分もいっしょにつけれないか??

せっかくだから、これだけ回答しておきます。

# 年、月、日を与えると曜日を返す
sub dayofweek($$$) {
 local($year,$month,$date) = @_;
 local(@table) = (0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4);
 local(@week_list) = ('日','月','火','水','木','金','土');
 $year -= ($month<3);
 return $week_list[($year + $year/4 - $year/100 + $year/400
         + $table[$month-1] + $date) % 7];
}

# 原典はC言語FAQ。ネット上にたくさんころがってます。

Aurai [E-Mail] 1998/10/22(木) 03:06:59
確かに最初から頼りきりというのは私も好みませんが
ここに発言した以上は自身でどうしようもなかったと見なしまして

L300(最新版の場合)を

if (($_ =~ /^Date:/)&&($date ne "")) {

こんな感じに括りなおしてやればいいんじゃないでしょうか
動作確認はとっていません
この前に変数が使われていないことを祈ります

B-Cus 1998/10/22(木) 04:46:36
>> その後の(曜日)時分もいっしょにつけれないか??
> せっかくだから、これだけ回答しておきます。

あ、失礼。そんなことしなくても今のラウンジは
各書き込みの曜日を記録してますね。

Auraiさんのアドバイスと同じ場所ですが、念のため他に影響がないように
$date_and_timeという変数を新しく作るとして、
 if (($_ =~ /^Date:/)&&($date ne "")) {
  $date = substr($_, 8,  8);
  $time = substr($_, 21, 8);
  $date_and_time = substr($_, 8, 21); # データファイルってSJISですよね?
 }
として、その後の
 $date, $file, $file, $solved,

 $date_and_time, $file, $file, $solved,
とすればいいでしょう。

僕好みに書けば
  ($date_and_time,$date,$time)
    = m|^Date: \d\d((\d\d/\d+/\d+)\([^\)]+\)) (\d+:\d+:\d+)$|;
ですけど。

> 動作確認はとっていません

同じく。

[上に] [前に] [次に]