LoginSignup
0
1

More than 1 year has passed since last update.

残人生のためのプログラミング 第-2回

Last updated at Posted at 2021-06-03

コンセプトをば

初回では残り人生の日にちを計算しました.
寿命が81歳だとすると,自分にはあと21915日残されています(初回から2日経過したので残り21913日).
これは人生最後の日を後悔せずに過ごせるようになるためのプログラミングです.

徹底的な自己管理

とは言ってもまだ学生ですし,当面の目標は学業で良い成績を収め,よりよい会社に勤めることとなります.そこで大切なのが自己管理.それを手助けするタスク管理アプリ作成へ向けて,毎日1歩ないし2,3歩ずつ進んでいきたいと思います.

CSVで管理する

前回まではTaskクラスを用意して,随時インスタンスを作成しタスクを登録していましたが,今回からCSVファイルに一括登録,pandasで読込を行っています.
pandasをfor文で回すのにitertupleを使ったんですが,その弊害として列の名前で要素を取り出せなくなってます.次回までに何かいい方法見つけたいなぁ.

tasks.csv
タスク名,期限,時間,重要度,備考
Qiitaの記事を投稿する,2021年6月4日,,low,毎日
課題を提出する,2021年6月9日,23:59,high,
Toeicの試験,2021年6月20日,13:00,high,
コインランドリー,2021年6月5日,7:00,mid,毎週
TaskNotify_csv.py
import requests
import datetime
import pandas as pd

class Task:
    def __init__(self, name, date):
        self.name = name
        self.date = datetime.datetime.strptime(date, '%Y年%m月%d日').date()
        self.sentence = "{}まで残り{}日\n".format(name, abs(self.date-today).days)


def createSend(tasks):
    sentences = "\n"
    for s in tasks:
        if s.date >= today:
            sentences += s.sentence

    return sentences


if __name__ == '__main__':
    today = datetime.date.today()

    csv_tasks = pd.read_csv("tasks.csv", sep=',')
    list_tasks =[]
    for row in csv_tasks.itertuples():
        list_tasks.append(Task(row[1], row[2]))

    send_dict = {'message': createSend(list_tasks)}

    TOKEN = 'hoge'
    url = 'https://notify-api.line.me/api/notify'
    TOKEN_dict = {'Authorization': 'Bearer ' + TOKEN}

    requests.post(url, headers=TOKEN_dict, data=send_dict)

TaskNotify_csv.png

次回,第-3回は...

単純なタスクとルーティン(習慣的なもの)を分けて実装していきます.Toeicとか課題は使い捨て(期限を過ぎると削除?),コインランドリーは数日ごとに再登録みたいな感じにしようかな.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1