私が働いた日数と働いた時間を記録したプログラムを作って、私は辞書を使いますか?そして、私は2週目の月曜日から1週目の月曜日とどう違うでしょうか?プログラムを終了した後、この情報を保存するにはどうすればよいですか? (Python言語)作業日/時間を追跡するタイムシートプログラム?
答えて
辞書は、プログラムの実行中にデータを保存するのに適しています。
データの永続性を追加するにはいくつかの方法があります(プログラムを終了した後に行われます)。 Pythonモジュールpickleとshelveは便利で使いやすいものです。これらの問題の1つは、Pythonプログラムの外部でデータを簡単に検査できないことです。 JSONとXML形式でテキストファイルを読み書きするモジュールもあります。また、JSONはテキストエディタで読むのが簡単です。もしあなたがまだ熟練していないのであれば、MySQLのようなデータベースはあなたが言及したような個人的なプログラムのために必要以上のものであり、それらを使う方法を学ぶのに時間を投資しない限り、より単純な解決策をとるべきです。
第1週の月曜日と第2週の月は、多くのオプションがあります。あなたは実際の日付を使用することができます(これは私にとっては良い考えです)、または( "Monday"、1)のようなタプルで辞書をキーすることができます。主なルールは、辞書のキーは不変でなければならないということです(int、文字列、タプル - 不変オブジェクトのみを含むなど)が、辞書(辞書、リストなど)はそうではありません。
おそらく毎週、または支払い期間のタイムシートオブジェクトを作成します。各タイムシートオブジェクトには、作業時間や時間がクロックイン/アウトされた曜日のコレクションが含まれている場合があります。
ウェブサイト用の永続ストレージの場合は、mysqlのようなデータベースを使用します。単一のマシン上で動作するアプリケーションでは、おそらくpickleやフラットファイルシステムを使用しています。
私自身がこのアプリケーションを設計するとき、私は反対のアプローチを採用しました。
私の経験では、計時アプリケーションの最大の問題はデータ入力です。そこで、私のアプリでは、最も簡単で柔軟なデータ入力ツール、テキストエディタを使用することにしました。私は、テキストファイルにノートを維持し、その中の計時エントリを混在するので、抜粋は次のようになります。
Monday 5/10/09
release script ok this week
open a case on the whole code-table-foreign-key thing
- CUS1 2.0 Generate and release version 1.0.45.
need to get dma to spec out the RESPRB configuration, see case 810
MH section complete - one to go!
- CUS2 4.0 Configure and test Mental Health section.
Tuesday 5/11/09
... and so on
は私のように、実際の計時エントリのフォーマット、適切な見出しで1日開始で一貫しただし、あなたが見ることができる、非常に簡単です。単純なスキャナとステートマシンがデータを抽出するのに必要なすべてです - 基本的に、私は平日またはハイフンで始まる行を探し、それ以外はすべて無視します。
ノートファイルを解析するときにプログラムが遅くならないように、私は毎年新しいノートファイルを作成します。 (12月末でさえも、解析に1/16秒を要しません。)
何百という人のタイムキーピングエントリを処理しなければならない場合は、この方法はありません。ユーザーは手がかりを少し持たなければならず、しばらくしてから解析時間が足りなくなります。一方、このデータを人間が読める形式のテキストファイルに保存しておけば、他のものを保存することができます(バージョン管理や差分などを維持することもできます)。
- 1. PHPの営業時間、休業日
- 2. ウェブアプリケーションのイベント時間を追跡する
- 3. MS Access従業員の有効日を追跡する
- 4. Jqueryで作業する時間をプラグイン
- 5. Youtrack時間レポート共同作業者の1日あたりの時間数
- 6. PHPの作業時間が特定の日まで
- 7. Harvest API-PHP-特定の時間枠の合計時間を追跡する
- 8. リレーショナルデータベースの作業時間/スケジュールを表す
- 9. 日付差は、営業日/時間/分ですか?
- 10. 営業時間および営業日(フォーム選択)
- 11. フォアグラウンドアプリケーションがアクティブである時間を追跡する方法
- 12. addref()とrelease()を追跡するコンパイル時間オプション?
- 13. 電話の通話時間を追跡する
- 14. ドラッグアンドドロップを使用した作業項目追跡ツールスタックランキング
- 15. 日付時間ピッカー操作
- 16. 日付と時間の間にテキストを追加する - PHP
- 17. Sql get Employee開始日(例:曜日、月曜日、火曜日など)の週の作業時間
- 18. asp.netでの作業時間の処理
- 19. C#アプリは、その実行時間を追跡しますか?
- 20. 作業コピーのブランチをどのように追跡するのですか?
- 21. nginx-sflow-moduleによる応答時間の追跡方法
- 22. ローカルNSDate時間とPST時間の営業時間を比較する
- 23. 従業員を追跡する方法は?
- 24. 日時を追加する
- 25. AngularJS:ウェブアプリで費やされた時間を追跡し、特定の時間にイベントをトリガーする
- 26. エラー:人跡未踏作業ツリーファイル
- 27. Java GUIアプリケーションで使用される時間を追跡する方法は?
- 28. 休日を除外する2日間の営業日を計算する
- 29. PHP関数/コードの追跡方法処理時間
- 30. 追跡の方法1ページのウェブサイトの訪問時間
ありがとう –