1. 神経質やせ男チャンネル
  2. python×JS連携の核心を解説
python×JS連携の核心を解説
2026-03-26 04:04

python×JS連携の核心を解説

可処分時間タイマー最大の難所、PythonとJavaScriptの連携処理を分解。日付変換・休日判定・残時間計算の流れを、3分で理解できるようやさしく整理します。

#Python
#JavaScript
#pywebview
#個人開発
#時間管理
---
stand.fmでは、この放送にいいね・コメント・レター送信ができます。
https://stand.fm/channels/608520b1eeca46c0ab7489cd

感想

まだ感想はありません。最初の1件を書きましょう!

00:06
神経質やせ男です。 前回は、タイマーを動かすJavaScript側を整理しました。 今回は、いよいよ核心、pythonとJavaScriptの間で何をしているのか、ここをpythonを中心に紙くだいとお話しします。
このタイマー、最大の難所が、CalculateDisposableTime Methodです。
まず冒頭の3行。ここでは、現在時刻を取得、JavaScriptから来た日付文字列を変換、そして終了時刻を23時59分59秒に調整、という処理をしています。
日付変換に使っているのが、ストアップタイム。JavaScriptから渡ってくる日付は文字列なので、pythonで計算できる日付型に直す必要があるわけですね。
そして次の異風文。もし、目標日時がすでに現在時刻を過ぎていたら、残り時間0としてすぐJavaScriptへ返します。
ここまでは準備運動。本当の山場はここからです。
while文のループ処理。これは何をしているかというと、今日から目標日まで1日ずつカレンダーをめくるという処理です。
まずisHoliday。ここでは土日かどうか、日本の祝日かどうかを判定しています。
次のDailyEasy。これは、睡眠プラス生活必要時間、つまり生きるために必須の時間です。
そして重要な分岐。もし休日なら、仕事も通勤もない前提で24時間から維持時間だけを引く。
平日なら、さらに勤務時間と通勤時間も引く。こうしてその日の箇所分時間を算出しています。
ここで使っているMax関数。これは安全装置です。計算結果がマイナスになっても0で止める。地味ですがかなり大事な処理です。
さらにもう一段難所があります。今日と明日以降で計算を分けている点です。
もし処理対象が今日なら、今日の残り時間が1日の何パーセントか。
これをRemaining Today ratioで計算。そして、箇所分時間×残り割合で今日分を秒換算しています。
一方明日以降はシンプル。箇所分時間×3600秒で丸ごと加算します。
そして最後にカレントデーを1日進める。これでまた次の日を計算。
このループを目標日まで繰り返して、総箇所分秒数を作り上げます。
そしてリターンで合計秒数目標日をJavaScriptへ返却。ここで連携プレイ完成です。
03:03
流れをまとめると、まずJavaScriptが設定を送る。Pythonがひめくり計算をする。そして秒数をJavaScriptへ返す。
最後にJavaScriptがタイマー表示。この分行構造が今回のアプリの肝です。
特に難しいのは今日だけ割合計算になるこのポイント。ここが理解できると一気に全体像が見えてきます。
このタイマーは実はかなり拡張余地があります。例えば睡眠は何時から何時。
ここまでやろうとするとさらに一段階ロジックが複雑になります。
なので今回の理解はかなり良い土台になっているはずです。
次回は少し経路を変えて、よりシンプルなレシピデータアプリについてお話しする予定です。
ということで、次回はレシピDBをPyWebViewで再構築についてお話しする予定です。
ご静聴ありがとうございました。
04:04

コメント

スクロール