リストより日付を選択できるようにした。
実行画面:
スクリーンのデザイン:
Spinnerで、年、月を選択できるようにした。(年は、1851年より2023年まで。月は、1月より12月)2024年までにしたいが、現状のままでは、若干問題が発生するので今回は省いた。
右側の「All Components」にはSpinnerが3つ設定してある。3番目のSpinnerは「日」を選択するものだが、とりあえずは非表示。理由は、選択年に応じ閏年時の調整、月に応じた調整などが必要なので。とりあえず、デフォルトとして1日から30日までを対象としているため、2月を選択すると、2月1日より2月30日のデータを取得しようとしてエラーとなる。次回以降の要修正事項。
プログラム(ブロック):
Spinnerで年と月を選択する部分のみ。
1. 変数と関数の設定
monthsList => 全ての月のリスト、yearsList => 全ての年のリスト
selectedYear => 選択された年を格納、selectedMonth => 選択された月を格納
関数 makeYearsList => 1851年より2023年までの「年」のリストを作成
関数 makeMonthsList => 1月より12月までの「月」のリストを作成
(procedureは、今後は「関数」と呼ぶことにした。適切な用語かどうかはわからないが)
2. Spinner1及びSpinner2に表示するデータを割り当てる
Spinner1 で選択されたデータ(年)を変数selectedYearに割り当てる。Spinner2で選択されたデータ(月)の場合、1桁であれば、0を付加し変数selectedMonthに割り当てる。(1 => 01)New York Times APIでは、この場合の日付は yyyy/MM/dd となっているので。
3. URLのパラメーター部分に日付を設定しGETリクエストを行う。
設定しているパラメーターについて:
begin_date(隠れているが)とend_dateで日付を設定。今回のように月単位だと1日から末日までを指定すれば良いみたいだ。当該1日を指定するときは、begin_date=20221003、end_date=20221003 と同じ日付を指定するのか、まだ不明。
fl=web_url, snippet,pub_date,headline... (取得するデータを指定)