def day_back(y): last_t = QDateTime.fromString(y['Log'][-1][0], Qt.ISODate) dd = QDateTime.daysTo(last_t, QDateTime.currentDateTime()) if dd == 0: return "今天刚刚" else: return str(dd) + "天前"
def write(self): url = 'http://paullab.co.kr/stock.html' response = requests.get(url) response.encoding = 'utj-8' html = response.text soup = BeautifulSoup(html, 'html.parser') values = soup.select('.tables td') #print(values) self.시총라벨값 = values[0].text self.시총라벨.setText(f'시가총액 : {values[0].text}') self.시총라벨.resize(400, 20) self.시총순위라벨값 = values[1].text self.시총순위라벨.setText(f'시가총액 순위 : {values[1].text}') self.시총순위라벨.resize(400, 20) self.현재가값 = values[3].text self.현재가.setText(f'현재가 : {values[3].text}') self.현재가.resize(400, 20) s = values[4].text.strip().replace('\n', '').split('l') # print(s) self.최고최저가값 = f'{s[0]} | {s[1]}' self.최고최저가.setText(f'52주 최고 | 52주 최저 : {s[0]} | {s[1]}') self.최고최저가.resize(400, 20) i = values[5].text.strip() # print(i) self.배당율.setText(f'배당율 : {i}') self.배당율.resize(400, 20) self.매출값 = values[6].text self.비용값 = values[7].text self.순익값 = values[8].text self.매출비용순익.setText(f'매출/비용/순익 :\n{values[6].text}\n / {values[7].text}\n / {values[8].text}') self.매출비용순익.resize(400, 80) day = QDateTime(2020, 1, 1, 00, 00, 00) # print(type(day)) # print(dir(day)) day = str(day.daysTo(QDateTime.currentDateTime())) self.오픈된날짜계산값 = day self.오픈된날짜.setText(f'오픈된 날짜 : {day} 일') self.오픈된날짜.resize(400, 20)
class Task(TaskBase): taskData = DAMGDICT() def __init__(self, taskID=None, taskName=None, taskMode=None, taskType=None, project=None, organisation=None, duetime={}, duedate={}, details={}): super(Task, self).__init__() self.taskID = taskID self.taskName = taskName self.taskMode = taskMode self.taskType = taskType self.project = project self.details = details self.organisation = organisation self.duetime = QTime(duetime['hour'], duetime['minute'], duetime['second']) self.duedate = QDate(duedate['year'], duedate['month'], duedate['day']) self.endDate = QDateTime(self.duedate, self.duetime) self.update() format = self.countter_format() self.timer.timeout.connect(self.update) self.timer.start(format) def update(self): self.startDate = QDateTime(self.date.currentDate(), self.time.currentTime()) self.days = self.startDate.daysTo(self.endDate) self.hours = self.endDate.time().hour() - self.startDate.time().hour() if self.hours <= 0: if self.days > 0: self.days = self.days - 1 self.hours = self.hours + 24 self.minutes = self.endDate.time().minute() - self.startDate.time().minute() if self.minutes <= 0: if self.hours > 0: self.hours = self.hours - 1 self.minutes = self.minutes + 60 self.seconds = self.endDate.time().second() - self.startDate.time().second() if self.seconds <= 0: if self.minutes > 0: self.minutes = self.minutes - 1 self.seconds = self.seconds + 60 self._status = self.get_status() if self.days == 0: if self.hours == 0: if self.minutes == 0: if self.seconds <= 30: pth = os.path.join(SOUND_DIR, 'bell.wav') if not self.play_alarm: playsound(pth) self.play_alarm = True if self.days != 0: hrs = self.hours + self.days*24 else: hrs = self.hours countdown = '{0}:{1}:{2}'.format(hrs, self.minutes, self.seconds) self.countdown.emit(countdown) self._dateline = self.endDate.toString('dd/MM/yy - hh:mm:ss') self._enddate = self.endDate.date().toString('dd/MM/yy') self._endtime = self.endDate.time().toString('hh:mm:ss') self.updateData() def updateData(self): self.taskData.add('name', self.taskName) self.taskData.add('id', self.taskID) self.taskData.add('mode', self.taskMode) self.taskData.add('type', self.taskType) self.taskData.add('project', self.project) self.taskData.add('organisation', self.organisation) self.taskData.add('dateline', self._dateline) self.taskData.add('enddate', self._enddate) self.taskData.add('endtime', self._endtime) self.taskData.add('details', self.details) with open(os.path.join(TASK_DIR, '{0}.task'.format(self.taskID)), 'w') as f: json.dump(self.taskData, f, indent=4) return self.taskData def get_status(self): if self.days < 0: self._status = 'Overdued' elif self.days == 0: if self.hours < 0: self._status = 'Overdued' elif self.hours == 0: if self.minutes <= 0: self._status = 'Overdued' else: self._status = 'Urgent' else: self._status = 'Urgent' elif self.days <= 2: self._status = 'Tomorrow' elif self.days > 2 and self.days < 7: self._status = '{0} days'.format(self.days) elif self.days == 7: self._status = '1 Week' else: self._status = '{0} days'.format(self.days) return self._status def dateline(self): return self._dateline def enddate(self): return self._enddate def endtime(self): return self._endtime # ------------------------------------------------------------------------------------------------------------- # Created by panda on 16/11/2019 - 7:00 PM # © 2017 - 2018 DAMGteam. All rights reserved