損するあほう

時計とかタバコとかPCとか、残しておく。※個人の感想です

KLWPのif条件文にx≦a≦y

KLWPで作ったホーム画面には天気予報を設置しています。

 

f:id:yu_john:20200424175011p:plain

中身はorefolderさんのものをほとんど頂いただけ。


紹介される文字列だと、6時間だけ表示できます。

$tc(cut, tc(split, tc(split, wg(gv(wurl), raw), "降水</th>
            <td>", 1), "</td>
            <td>", 2), 3)$

 この書き方をすると12-18時の降水確率が表示できます。

 

6時間だけの降水確率を見られるのもいいのですが、実用的ではありません。
朝は6-12時のを、昼は12-18を、と変化させたいので、時間に基づくif条件文を作りました。2の部分に代入すれば大丈夫です。

$if(df(hh)<=4, 0, df(hh)>=5&df(hh)<=10, 1, df(hh)>=11&df(hh)<=16, 2, df(hh)>=17&df(hh)<=23, 3, 0)$

 <追記>

df(hh)は0-23の整数で、範囲指定は0から順に調べていくので、上のような長々とした指定ではなく

$if(df(hh)<5,0,df(hh)<11,1,df(hh)<17,2,3)$

が短くてすっきりします。

コメントで通りすがりのKLWPマイスターが教えてくれました。ありがとうございます。
KLWPの仕様書でもあるんでしょうか。それともどこかのフォーラムや海外サイトでも見てるんだろうか...。

 <ここまで>

 

if文で〇〇以上〇〇以下のように、範囲を指定する場合は&でつなぎます
x≦a≦yならばbは

$if(a>=x&a<=y, b)$

です。おそらく&前後の順番はどちらでも大丈夫。「,」は使わない。

 

4時台までは0-6時を、5-10時台は6-12時、11-16時台は12-18時、17-23時台は18-24時を表示させるためにそれぞれ0,1,2,3と返すように書きました。最後の0は仕方なしですね。

範囲指定するときに

$if(x<=a<=y, b)$

とか

$if((a>=x, a<=y), b$

とか ダメでしたよね。意外と気づかなかった。

 

おかげでホーム画面に本日の数時間後の降水確率が表示されるようになりました。

f:id:yu_john:20200425234857j:plain

降水確率が0%の場合に「<」まで一緒に表示されるのは改善の余地ありです。

 

日本語で調べても意外とこの&に関する情報を見つけられませんでした。もしかするとredditのKLWPコミュには何かあるかもしれませんね。

あと、トムとロイドさんのページにアクセスしても404が表示されました。削除してしまったのでしょうか。ぎりぎりキャッシュで見られてますが。

 <追記>

普通に残ってました。削除されたページを参照していただけかもしれません。

 <ここまで>

 

では、またお会いしましょう。