Beispiel #1
0
    def test_dateconversion(self):
        sample = jdatetime.date(1389, 9, 2)

        d_check_with = jdatetime.date(1390, 2, 23)
        #TEST date
        self.assertEqual(True, sample.togregorian() ==
                         datetime.date(2010, 11, 23))
        self.assertEqual(True, jdatetime.date.fromgregorian(
                         date=datetime.date(2011, 5, 13)) == d_check_with)

        #TEST datetime
        self.assertEqual(True, jdatetime.datetime.fromgregorian(
                         datetime=datetime.datetime(2011, 5, 13)).date() ==
                         d_check_with)

        jd_datetime = jdatetime.datetime.fromgregorian(year=2011,
                                                       month=5,
                                                       day=13,
                                                       hour=14,
                                                       minute=15,
                                                       second=16)
        self.assertEqual(True, jd_datetime ==
                         jdatetime.datetime.combine(d_check_with,
                                                    jdatetime.time(14,
                                                                   15,
                                                                   16)))

        gdatetime = datetime.datetime(2011, 5, 13, 14, 15, 16)
        self.assertEqual(True, jd_datetime.togregorian() == gdatetime)
Beispiel #2
0
    def test_date_calculation_on_two_dates(self):
        date_1394 = jdatetime.date(1394, 1, 1)
        date_1395 = jdatetime.date(1395, 1, 1)

        day_diff = date_1395 - date_1394

        self.assertEqual(day_diff, datetime.timedelta(365))

        day_diff = date_1394 - date_1395

        self.assertEqual(day_diff, datetime.timedelta(-365))
Beispiel #3
0
    def test_date_calculation_on_timedelta(self):
        date_1395 = jdatetime.date(1395,1,1)
        day_before = date_1395 - jdatetime.timedelta(days=1)
        day_after = date_1395 + jdatetime.timedelta(days=1)

        self.assertEqual(day_before, jdatetime.date(1394, 12, 29))
        self.assertEqual(day_after, jdatetime.date(1395, 1, 2))

        day_after = jdatetime.timedelta(days=1) + date_1395

        self.assertEqual(day_before, jdatetime.date(1394, 12, 29))
        self.assertEqual(day_after, jdatetime.date(1395, 1, 2))
Beispiel #4
0
    def test_kabiseh(self):
        kabiseh_year = jdatetime.date.fromgregorian(date=datetime.date(2013, 3, 20))
        self.assertEqual(True, kabiseh_year.isleap() is True)

        normal_year = jdatetime.date.fromgregorian(date=datetime.date(2014, 3, 20))
        self.assertEqual(True, normal_year.isleap() is False)

        kabiseh_year = jdatetime.date(1391, 12, 30)
        self.assertEqual(True, kabiseh_year.isleap() is True)

        with self.assertRaises(ValueError):
            jdatetime.date(1392, 12, 30)
Beispiel #5
0
 def test_as_locale_returns_same_date_with_specified_locale(self):
     jdate_en = jdatetime.date(1397, 4, 23, locale='en_US')
     jdate_fa = jdate_en.aslocale('fa_IR')
     self.assertEqual(jdate_fa.year, 1397)
     self.assertEqual(jdate_fa.month, 4)
     self.assertEqual(jdate_fa.day, 23)
     self.assertEqual(jdate_fa.locale, 'fa_IR')
Beispiel #6
0
 def test_subtract_time_delta(self):
     date = jdatetime.date(1397, 4, 22, locale='nl_NL')
     new_date = date - datetime.timedelta(days=1)
     self.assertEqual(new_date.year, 1397)
     self.assertEqual(new_date.month, 4)
     self.assertEqual(new_date.day, 21)
     self.assertEqual(new_date.locale, 'nl_NL')
Beispiel #7
0
 def test_reverse_add_time_delta(self):
     date = jdatetime.date(1397, 4, 22, locale='nl_NL')
     new_date = datetime.timedelta(days=2) + date
     self.assertEqual(new_date.year, 1397)
     self.assertEqual(new_date.month, 4)
     self.assertEqual(new_date.day, 24)
     self.assertEqual(new_date.locale, 'nl_NL')
Beispiel #8
0
    def to_python(self, value):
        if value is None:
            return value
        if isinstance(value, datetime.datetime):
            return jdatetime.date.fromgregorian(date=value.date())
        if isinstance(value, datetime.date):
            return jdatetime.date.fromgregorian(date=value)

        if isinstance(value, jdatetime.datetime):
            return value.date()
        if isinstance(value, jdatetime.date):
            return value

        if not ansi_date_re.search(value):
            raise exceptions.ValidationError(self.error_messages["invalid"])
        # Now that we have the date string in YYYY-MM-DD format, check to make
        # sure it's a valid date.
        # We could use time.strptime here and catch errors, but datetime.date
        # produces much friendlier error messages.
        year, month, day = map(int, value.split("-"))
        try:
            if year > 1500:
                return jdatetime.date.fromgregorian(date=datetime.date(year, month, day))
            else:
                return jdatetime.date(year, month, day)
        except ValueError, e:
            msg = self.error_messages["invalid_date"] % _(str(e))
            raise exceptions.ValidationError(msg)
Beispiel #9
0
    def test_strftime(self):
        s = jdatetime.date(1390, 2, 23)
        string_format = "%a %A %b %B %c %d %H %I %j %m %M %p %S %w %W %x %X %y %Y %f %z %Z"
        output = 'Jom Jomeh Ord Ordibehesht Jom Ord 23 00:00:00 1390 23 00 00 054 02 00 AM 00 6 7 02/23/90 00:00:00 90 1390 000000  '
        self.assertEqual(s.strftime(string_format), output)

        dt = jdatetime.datetime(1390, 2, 23, 12, 13, 14, 1)
        string_format = "%a %A %b %B %c %d %H %I %j %m %M %p %S %w %W %x %X %y %Y %f"
        output = 'Jom Jomeh Ord Ordibehesht Jom Ord 23 12:13:14 1390 23 12 12 054 02 13 AM 14 6 7 02/23/90 12:12:14 90 1390 000001'
        self.assertEqual(dt.strftime(string_format), output)

        class NYCTime(jdatetime.tzinfo):
            def utcoffset(self, dt):
                return jdatetime.timedelta(hours=-4)

            def tzname(self, dt):
                return "EDT"

            def dst(self, dt):
                return jdatetime.timedelta(0)

        nyc = NYCTime()
        dt = jdatetime.datetime(1389, 2, 17, 19, 10, 2, tzinfo=nyc)
        self.assertEqual(True, dt.strftime("%Z %z") == "EDT -0400")

        teh = TehranTime()
        dt = jdatetime.datetime(1389, 2, 17, 19, 10, 2, tzinfo=teh)
        self.assertEqual(True, dt.strftime("%Z %z") == "IRDT +0330")
Beispiel #10
0
    def to_python(self, value):
        """
        Validates that the input can be converted to a date. Returns a Python
        datetime.date object.
        """
        if value in validators.EMPTY_VALUES:
            return None
        if isinstance(value, jdatetime.datetime):
            return value.date()
        if isinstance(value, jdatetime.date):
            return value

        groups = re.search(
            r'(?P<year>[\d]{1,4})-(?P<month>[\d]{1,2})-(?P<day>[\d]{1,2})',
            value
        )
        try:
            return jdatetime.date(year=int(groups.group(1)),
                                  month=int(groups.group(2)),
                                  day=int(groups.group(3)))

        except (ValueError, AttributeError):
            pass

        raise exceptions.ValidationError(self.error_messages['invalid'])
Beispiel #11
0
    def convert(self, row):
        metadata = {
            'Desc.': persian.convert_fa_numbers(row[t['sharh']]),
        }
        inputAmount = int(row[t['bestankar']])
        outputAmount = int(row[t['bedehkar']])
        amount = 0
        reverse = True

        name = persian.convert_fa_numbers(row[t['nam']])
        matchNumber = re.findall('(\d+)', name)
        accountNumber = ''
        if matchNumber:
            accountNumber = matchNumber[0]
            name = name.replace(accountNumber, ' ' + accountNumber + ' ')
        metadata['Name'] = name

        fromAccount = self.unknownaccount
        foundAccount = self.accounts.get(str(accountNumber), None)
        payee = name
        if accountNumber is not '' and foundAccount:
            fromAccount = foundAccount['account']
            payee = foundAccount['name']

        if accountNumber is not '':
            payee = "(" + accountNumber + ") " + payee

        if outputAmount > 0:
            amount = outputAmount / 10000
            reverse = True
        else:
            amount = inputAmount / 10000
            reverse = False
            fromAccount = 'Income:Salary'

        jdatestring = row[t['tarikh']]
        jdate = jdatetime.date(
            int(jdatestring[0:4]), int(jdatestring[4:6]),
            int(jdatestring[6:8]))
        date = jdate.togregorian()
        metadata['Date'] = jdate.isoformat() + ', ' + jdate.j_weekdays_en[
            jdate.weekday()]
        metadata['Time'] = row[t['time']]

        unit = 'kIRT'

        return Transaction(
            cleared=True,
            date=date,
            payee=payee,
            metadata=metadata,
            postings=[
                Posting(
                    account=fromAccount,
                    amount=Amount(amount, unit, reverse=not reverse)),
                Posting(
                    account=self.name,
                    amount=Amount(amount, unit, reverse=reverse))
            ])
Beispiel #12
0
    def extract_chart(self, symbol, chart_name, end_date, time_slot):
        # the list representing the labels of a line chart
        x = []
        # the list representing the data of a line chart
        y = []
        # the return value (a tuple)
        d = None

        if time_slot == ONE_WEEK or time_slot == THREE_WEEK:
        # Considering a week has 7 days, we extract those rows from our database
        # that match the given symbol and time duration given as inputs to the method
            start_date = end_date - jdate.timedelta(days = time_slot*7)
            date = start_date
            while date <= end_date:
                t = 0
                for row in self.datas:
                    if row['date'] == date and symbol == row['symbol']:
                        y.append(row[chart_name])
                        t = 1
                        break
                x.append(str(date))
                if t == 0:
                    y.append(0)
                date += jdate.timedelta(days = 1)
            d = (x, y)

        elif time_slot == THREE_MONTHS:
            end_date = self.set_to_wednesday(end_date)
            start_date = end_date - jdate.timedelta(days = 12*7)
            date = start_date
            while date <= end_date:
                sum_value = 0
                for row in self.datas:
                    if symbol == row['symbol'] and row['date'] > date and row['date'] <= date + jdate.timedelta(days = 7):
                        sum_value = sum_value + row[chart_name]

                x.append(str(date + jdate.timedelta(days = 7)))
                y.append(sum_value)
                date += jdate.timedelta(days = 7)
            d = (x, y)

        elif time_slot == ONE_YEAR:
            start_date = jdate.date(end_date.year - 1, end_date.month, end_date.day)
            # print(str(start_date)+ 'تاریخ شروع ')
            # print(str(end_date) + 'تاریخ پایان ')
            date = start_date
            while date <= end_date:
                # print(str(date) + 'curr date')
                sum_value = 0
                for row in self.datas:
                    if symbol == row['symbol'] and row['date'].year == date.year and row['date'].month == date.month:
                        sum_value = sum_value + row[chart_name]
                x.append(date.j_months_fa[date.month - 1])
                y.append(sum_value)
                date += jdate.timedelta(days = 30)
            d = (x, y)
        return d
Beispiel #13
0
 def test_timetuple(self):
     date = jdatetime.date(
         1397,
         4,
         22,
     )
     self.assertEqual(
         date.timetuple(),
         time.struct_time((2018, 7, 13, 0, 0, 0, 4, 194, -1)),
     )
Beispiel #14
0
 def _has_changed(self, initial, data):
     # If our field has show_hidden_initial=True, initial will be a string
     # formatted by HiddenInput using formats.localize_input, which is not
     # necessarily the format used for this widget. Attempt to convert it.
     try:
         input_format = formats.get_format('DATE_INPUT_FORMATS')[0]
         initial = jdatetime.date(*time.strptime(initial, input_format)[:3])
     except (TypeError, ValueError):
         pass
     return super()._has_changed(self._format_value(initial), data)
Beispiel #15
0
def convert_jalali_gregorian(jalali_date):
    """
    convert jalali string date to gregorian date object
    :param jalali_date: jalali date as string
    :return: gregorian date of jalali date
    """
    year, month, day = jalali_date.split('-')
    start_day = jdatetime.date(day=int(day), year=int(year),
                               month=int(month)).togregorian()
    return start_day
Beispiel #16
0
 def _has_changed(self, initial, data):
     # If our field has show_hidden_initial=True, initial will be a string
     # formatted by HiddenInput using formats.localize_input, which is not
     # necessarily the format used for this widget. Attempt to convert it.
     try:
         input_format = formats.get_format('DATE_INPUT_FORMATS')[0]
         initial = jdatetime.date(*time.strptime(initial, input_format)[:3])
     except (TypeError, ValueError):
         pass
     return super(jDateInput, self)._has_changed(self._format_value(initial), data)
Beispiel #17
0
def expert_reqs_noxp(account):
    date = jdatetime.date(month=10, day=1, year=1399)
    reqs = Requests.objects.filter(
        is_active=True,
        finished=False,
        date_fa__gte=date,
        owner=account,
        xpref__isnull=True
    )
    return reqs.count()
Beispiel #18
0
    def parse(self, response):

        dic = {"title":" ", "timestamp": "", "url": " ", "date": " ", "text": " ", "summary": " ", "tags": [], "article_section": " ", "code": " "}

        title = response.xpath('//h1[@class="title"]/text()').get()
        dic["title"] = title

        news_url = response.xpath('//a[@id="short-link"]/text()').get()
        dic["url"] = " ".join(news_url.split())

        sections = []
        dic["article_section"] = sections

        summary = response.xpath('//h3[@class="lead"]/text()').get()
        dic["summary"] = summary

        date = response.xpath('//li[@class="time"]/text()').get()
        date_list = date.split(' ')
        timelist = date_list[5].split(':')
        hour = convert_persian_to_english_numbers(timelist[0])
        minute = convert_persian_to_english_numbers(timelist[1])
        day = convert_persian_to_english_numbers(date_list[1])
        month = month_dic[date_list[2]]
        year = convert_persian_to_english_numbers(date_list[3])
        jalili_date = jdatetime.date(int(year), int(month), int(day)).togregorian()
        datetime_object = datetime.datetime(jalili_date.year, jalili_date.month, jalili_date.day, int(hour),
                                            int(minute))
        dic["date"] = str(datetime_object)
        dic["timestamp"] = datetime_object.timestamp()

        code = "no code"
        dic["code"] = code

        tags = []
        dic["tags"] = tags

        text_list = response.xpath('//div[@class="story"]/p/text()').getall()
        text = ""
        for t in text_list:
            text += t
        dic["text"] = text

        dic["preprocessed_title"] = preprocess(dic["title"])
        dic["preprocessed_summary"] = preprocess(dic["summary"])
        dic["preprocessed_text"] = preprocess(dic["text"])
        dic["w2v"] = get_word2vec(dic).tolist()
        dic["tfidf"] = get_tfidt_vector(dic).tolist()

        es = Elasticsearch([{'host': 'localhost', 'port': 9200}])
        res = es.index(index='newsindex', doc_type='news', body=dic)

        client = MongoClient()
        db = client['newsdb_week']
        articles = db.weekarticles
        result = articles.insert_one(dic)
Beispiel #19
0
    def convert(self, row):
        desc = persian.convert_fa_numbers(row['enbank'])
        metadata = {'Desc.': desc}
        inputAmount = int(row['3'])
        outputAmount = int(row['4'])
        amount = 0
        reverse = True

        accountNumber = ""
        matchNumber = re.findall('(\d{7,9})', desc)
        if matchNumber:
            accountNumber = int(matchNumber[0])

        fromAccount = self.unknownaccount
        foundAccount = self.accounts.get(str(accountNumber), None)
        payee = 'Unknown'
        if accountNumber is not '' and foundAccount:
            fromAccount = foundAccount['account']
            payee = foundAccount['name']

        if accountNumber is not '':
            payee = "(" + str(accountNumber) + ") " + payee

        if outputAmount > 0:
            amount = outputAmount / 10000
            reverse = True
        else:
            amount = inputAmount / 10000
            reverse = False
            fromAccount = 'Income:Salary'

        jdatestring = row['1']
        jdate = jdatetime.date(int(jdatestring[0:4]), int(jdatestring[5:7]),
                               int(jdatestring[8:]))
        date = jdate.togregorian()
        metadata['Date'] = jdate.isoformat() + ', ' + jdate.j_weekdays_en[
            jdate.weekday()]
        metadata['Time'] = row['2']

        unit = 'kIRT'

        return Transaction(cleared=True,
                           date=date,
                           payee=payee,
                           metadata=metadata,
                           postings=[
                               Posting(account=fromAccount,
                                       amount=Amount(amount,
                                                     unit,
                                                     reverse=not reverse)),
                               Posting(account=self.name,
                                       amount=Amount(amount,
                                                     unit,
                                                     reverse=reverse))
                           ])
Beispiel #20
0
def reqs_no_xp(user):
    date = jdatetime.date(month=10, day=1, year=1399)
    reqs = Requests.objects.filter(
        is_active=True,
        finished=False,
        date_fa__gte=date,
        xpref__isnull=True,
    ).order_by('date_fa').reverse()
    if not user.is_superuser:
        reqs = reqs.filter(owner=user)
    return reqs
Beispiel #21
0
    def getDate(dt):


        y=str(dt).split("-")
        if(len(y)==3):
            year=int(y[0])
            month=int(y[1])
            day=int(y[2])
            return jdatetime.date(year,month,day).togregorian()
        else:
            return datetime.date.today()
Beispiel #22
0
    def is_valid(self):
        try:
            self.data._mutable = True
            self.data['date'] = jdatetime.date(
                *map(int,
                     normalize_digits(self.data['date']).split(
                         '/'))).togregorian().strftime('%Y-%m-%d')
        except:
            pass

        return super(NoteForm, self).is_valid()
Beispiel #23
0
def mergeIranbourseAllDayExcelsByDays(InputDir="DailyExcelsFromIranBourse", OutputFile="AllDataByDays.pkl"):
    jdatetime.set_locale('fa_IR')

    allData = {}
    # if not os.path.exists(InputDir):
    #     os.makedirs(InputDir)

    for root, dirs, files in os.walk(InputDir):
        files.sort()
        print('start readin files')
        fi = 0.0
        for filename in files:
            print(str(int(fi / files.__len__() * 100.0)) + ' %  ... ' + filename)
            fi += 1.0
            try:
                df_list = pandas.read_html(InputDir + '/' + filename)
            except ValueError as e:
                if e.args[0] == 'No tables found':
                    continue
                else:
                    raise e

            if len(df_list) < 1:
                print('no Data Frame in > ' + filename)
                continue

            df = df_list[0]  # first frame only !
            # df.to_csv('DataPreparing/Data/table {}.csv'.format(0))
            if df.isnull().values.any():
                print('null value in > ' + filename)
                continue

            date = filename.split('.')[0].split('_')
            pd = jdatetime.date(int(date[1]), int(date[2]), int(date[3]))
            ed = pd.togregorian()
            dayInWeek = ed.strftime("%A")
            pdayInWeek = pd.strftime("%A")

            thisday = {}
            for col in df.columns.values:
                # thisday[col] = df[col].values
                idx = 0
                for v in df[col].values:
                    if idx not in thisday:
                        thisday[idx] = {}
                    thisday[idx][col] = v
                    idx += 1

            allData[pd] = thisday

    f = open(OutputFile, "wb")
    pickle.dump(allData, f)
    f.close()
Beispiel #24
0
    def test_comparison(self):
        today = jdatetime.date.today()
        self.assertEqual(False, today < today - jdatetime.timedelta(days=76) )
        self.assertEqual(False, today <= today - jdatetime.timedelta(days=1) )
        self.assertEqual(True, today + jdatetime.timedelta(days=1) >  today  )
        self.assertEqual(True, today + jdatetime.timedelta(days=30) >= today )
        self.assertEqual(True, today == today)
        self.assertEqual(True, today != (jdatetime.date( today.year, today.month, today.day ) + jdatetime.timedelta(days=1) ) )

        dtg = jdatetime.datetime(1380, 12, 1, 1, 2, 4)
        self.assertEqual(True, dtg < dtg + jdatetime.timedelta(seconds=1))
        self.assertEqual(True, dtg - jdatetime.timedelta(seconds=1) < dtg)
        self.assertEqual(False, dtg == None)
Beispiel #25
0
 def set_default(self, kwargs):
     kwargs_temp = kwargs.copy()
     today = jdatetime.date.today()
     month_start = jdatetime.date(year=today.year, month=today.month, day=1)
     kwargs_temp['data'] = {
         'perm_date_after': str(month_start),
     }
     self.request.session['report-filters'] = {
         'data': {
             'perm_date_after': str(month_start),
         }
     }
     return kwargs_temp
Beispiel #26
0
    def test_date_raise_exception_on_invalid_calculation(self):
        date_1395 = jdatetime.date(1395,1,1)

        with self.assertRaises(TypeError):
            day_before = date_1395 - 1

        with self.assertRaises(TypeError):
            day_before = date_1395 + 1

        with self.assertRaises(TypeError):
            day_before = jdatetime.timedelta(days=1) - date_1395

        with self.assertRaises(TypeError):
            day_before = date_1395 + date_1395
Beispiel #27
0
 def get(self, request, *args, **kwargs):
     per = request.GET['select_and_time[date]']
     time_slot = int(request.GET['select_and_time[time_slot]'])
     code = {u"۰":"0",u"۱":"1",u"۲":"2",u"۳":"3",u"۴":"4",u"۵":"5",u"۶":"6",u"۷":"7",u"۸":"8",u"۹":"9", u"/":"/"}
     new_per = ''.join(code.get(ch, ch) for ch in per)
     dates = new_per.split('/')
     if (dates == ['']):
         persian_date = jdate.date.today()
     else:
         persian_date = jdate.date(int(dates[0]), int(dates[1]), int(dates[2]))
     result = self.get_product_producer('copper',persian_date, time_slot )
     datas = result
     output = {'datas': datas}
     return HttpResponse(json.dumps(output))
Beispiel #28
0
    def test_date_raise_exception_on_invalid_calculation(self):
        date_1395 = jdatetime.date(1395, 1, 1)

        with self.assertRaises(TypeError):
            day_before = date_1395 - 1

        with self.assertRaises(TypeError):
            day_before = date_1395 + 1

        with self.assertRaises(TypeError):
            day_before = jdatetime.timedelta(days=1) - date_1395

        with self.assertRaises(TypeError):
            day_before = date_1395 + date_1395
def mergeIranbourseAllNamadExcelsByNamadd(InputDir="NamadsExcelsFromIranBourse", OutputFile="AllDataByNamads.pkl"):
    jdatetime.set_locale('fa_IR')

    allData = {}

    for root, dirs, files in os.walk(InputDir):
        files.sort()
        print('start readin files')
        fi = 0.0
        for filename in files:
            print(str(int(fi / files.__len__() * 100.0)) + ' %  ... ' + filename)
            fi += 1.0
            df_list = pandas.read_html(InputDir + '/' + filename)

            if len(df_list) < 1:
                print('no Data Frame in > ' + filename)
                continue

            df = df_list[0]  # first frame only !
            # df.to_csv('DataPreparing/Data/table {}.csv'.format(0))
            if df.isnull().values.any():
                print('null value in > ' + filename)
                continue

            parts = filename.split('.')[0].split('_')
            NamadId = parts[1]
            NamadCode = parts[2]

            thisNamad = {}
            for col in df.columns.values:
                idx = 0
                for v in df[col].values:
                    if idx not in thisNamad:
                        thisNamad[idx] = {}
                    if col == str('تاريخ'):
                        date = v.split('/')
                        pd = jdatetime.date(int(date[0]), int(date[1]), int(date[2]))
                        thisNamad[idx][col] = pd
                    else:
                        if type(v) == numpy.int64:
                            thisNamad[idx][col] = int(v)
                        else:
                            thisNamad[idx][col] = v
                    idx += 1

            allData[NamadId] = thisNamad

    f = open(OutputFile, "wb")
    pickle.dump(allData, f)
    f.close()
Beispiel #30
0
    def test_date_conversion_integer_input(self):
        d_check_with = jdatetime.date(1390, 2, 23)

        jd_datetime = jdatetime.datetime.fromgregorian(year=2011,
                                                       month=5,
                                                       day=13,
                                                       hour=14,
                                                       minute=15,
                                                       second=16)
        self.assertEqual(
            True, jd_datetime == jdatetime.datetime.combine(
                d_check_with, jdatetime.time(14, 15, 16)))

        gdatetime = datetime.datetime(2011, 5, 13, 14, 15, 16)
        self.assertEqual(True, jd_datetime.togregorian() == gdatetime)
Beispiel #31
0
    def test_strftime_in_fa_locale(self):
        s = jdatetime.date(1390, 2, 23, locale='fa_IR')
        string_format = "%a %A %b %B %c %d %H %I %j %m %M %p %S %w %W %x %X %y %Y %f %z %Z"
        output = u"جمعه جمعه اردیبهشت اردیبهشت جمعه ۲۳ اردیبهشت ۹۰, ۰۰:۰۰:۰۰ ۲۳ ۰۰ ۱۲ ۰۵۴ ۰۲ ۰۰ قبل از ظهر ۰۰ ۶ ۸ ۱۳۹۰/۰۲/۲۳ ۰۰:۰۰:۰۰ ۹۰ ۱۳۹۰ ۰۰۰۰۰۰  "
        self.assertEqual(s.strftime(string_format), output)

        dt = jdatetime.datetime(1390, 2, 23, 12, 13, 14, 1, locale='fa_IR')
        unicode_format = "%a %A %b %B %c %d %H %I %j %m %M %p %S %w %W %x %X %y %Y %f"
        output = u"جمعه جمعه اردیبهشت اردیبهشت جمعه ۲۳ اردیبهشت ۹۰, ۱۲:۱۳:۱۴ ۲۳ ۱۲ ۱۲ ۰۵۴ ۰۲ ۱۳ بعد از ظهر ۱۴ ۶ ۸ ۱۳۹۰/۰۲/۲۳ ۱۲:۱۳:۱۴ ۹۰ ۱۳۹۰ ۰۰۰۰۰۱"

        self.assertEqual(dt.strftime(unicode_format), output)

        string_format = u"سال = %y، ماه = %m، ﺭﻭﺯ = %d"
        output = u'سال = ۹۰، ماه = ۰۲، ﺭﻭﺯ = ۲۳'
        self.assertEqual(dt.strftime(string_format), output)
Beispiel #32
0
def main():
    for i in range(1, 12):
        for j in range(1, 30):
            for user in User.objects.all():
                result = {
                    'count_file': randint(100, 500),
                    'value_file': randint(1000000, 1000000000),
                    'count_file_daily': randint(10, 100),
                    'value_file_daily': randint(1000000, 5000000),
                    'count_file_recovery': randint(1, 10),
                    'persian_date': jdatetime.date(1396, i, j),
                    'user': user
                }

                PersonDailyReport.objects.create(**result)
Beispiel #33
0
 def find_current_week(self):
     jweek = []
     weekday = self.week_day
     day = self.jday
     if day - weekday < 1:
         previous_month = (self.jmonth - 1) % 12
         year = self.jyear - 1 if self.jmonth == 1 else self.jyear
         jmonth_range = self.fix_kabise(year)
         w_range = (jmonth_range[previous_month] - weekday + day, jmonth_range[previous_month] + 1)
         count = 0
         for i in range(w_range[0], w_range[1]):
             date = jdatetime.date(year, previous_month, i)
             jweek += [(date, count)]
             count += 1
     begin = (day - weekday, 0) if day - 1 >= weekday else (1, weekday - day + 1)
     count = 0
     for i in range(begin[0], day + 1):
         date = jdatetime.date(self.jyear, self.jmonth, i)
         jweek += [(date, begin[1] + count)]
         count += 1
     last_day = jweek[-1][1] + 1
     next_month_days = 1
     next_month = (self.jmonth + 1) % 12
     year = self.jyear + 1 if self.jmonth == 12 else self.jyear
     next = False
     while last_day < 7:
         if jweek[-1][0].day + 1 <= self.jmonth_range[self.month] and not next:
             date = jdatetime.date(self.jyear, self.jmonth, jweek[-1][0].day + 1)
             jweek += [(date, last_day)]
         else:
             date = jdatetime.date(year, next_month, next_month_days)
             jweek += [(date, last_day)]
             next_month_days += 1
             next = True
         last_day += 1
     return jweek
class Migration(migrations.Migration):

    dependencies = [
        ('app1', '0013_post'),
    ]

    operations = [
        migrations.AddField(
            model_name='post',
            name='datetime',
            field=django_jalali.db.models.jDateTimeField(
                default=jdatetime.date(1390, 2, 3)),
            preserve_default=False,
        ),
    ]
Beispiel #35
0
def AllThursdays(length, start_time=jdatetime.datetime.now()):
    dates = date(start_time.year, start_time.month, start_time.day)  #today
    today = dates
    dates += timedelta(days=5 - dates.weekday())
    current_month = start_time.month
    if 5 - today.weekday() >= 0:
        yield dates
    f = start_time + timedelta(days=length)
    try:
        f = f.date()
    except:
        f = f
    while dates <= f:
        dates += timedelta(days=7)
        if dates <= f:
            yield dates
Beispiel #36
0
def received_datetime_handler(bot, update, user_data):
    '''DATE_TIME State handler function'''
    user_data['p_date'] = update.message.text
    now = jdatetime.date.today()

    if not user_data['p_date'].replace(' ', '').isdigit():
        update.message.reply_text('lotfan add bede mesle nmune ke dadm')
        return DATE_TIME

    dt_list = user_data['p_date'].split()

    year = now.year
    month = now.month
    day = now.day

    if len(dt_list) == 1:
        day = int(dt_list[0])
    elif len(dt_list) == 2:
        month = int(dt_list[0])
        day = int(dt_list[1])
    elif len(dt_list) == 3:
        year = int(dt_list[0])
        month = int(dt_list[1])
        day = int(dt_list[2])
    else:
        update.message.reply_text('lotfan 1 ta 3 add bedid')
        return DATE_TIME

    p_date = jdatetime.date(year=year, month=month, day=day)
    strftime = p_date.strftime("%a, %d %b %Y")

    delta = p_date - now
    if delta.days < 0:
        update.message.reply_text(
            'time ke zadi gabl az emruze va gabul nist 2bare emtehan kon\n'
            '\n{}\n'.format(strftime))
        return DATE_TIME

    user_data['p_date'] = p_date
    user_data['p_date_str'] = strftime
    update.message.reply_text(
        'baraye sabt post /enqeue obezan ta {} pose mishe'.format(strftime))
    update.message.reply_text(text=user_data['pocket'],
                              parse_mode=telegram.ParseMode.HTML)

    return DATE_TIME
Beispiel #37
0
 def to_python(self, value):
     """
     Validates that the input can be converted to a date. Returns a Python
     datetime.date object.
     """
     if value in validators.EMPTY_VALUES:
         return None
     if isinstance(value, jdatetime.datetime):
         return value.date()
     if isinstance(value, jdatetime.date):
         return value
     for format in self.input_formats or formats.get_format("DATE_INPUT_FORMATS"):
         try:
             return jdatetime.date(*time.strptime(value, format)[:3])
         except ValueError:
             continue
     raise exceptions.ValidationError(self.error_messages["invalid"])
Beispiel #38
0
 def to_python(self, value):
     """
     Validates that the input can be converted to a date. Returns a Python
     datetime.date object.
     """
     if value in validators.EMPTY_VALUES:
         return None
     if isinstance(value, jdatetime.datetime):
         return value.date()
     if isinstance(value, jdatetime.date):
         return value
     for format in self.input_formats or formats.get_format('DATE_INPUT_FORMATS'):
         try:
             return jdatetime.date(*time.strptime(value, format)[:3])
         except ValueError:
             continue
     raise exceptions.ValidationError(self.error_messages['invalid'])
Beispiel #39
0
def import_items(user, file_name='data.csv'):
    # try:
    with open(file_name, newline='') as csvfile:
        items = csv.reader(csvfile, delimiter=',')
        new_items = []
        for item in items:
            new_items.append(
                Item(name=item[1],
                     price=item[2],
                     date=jdatetime.date(int(item[0].split('/')[0]),
                                         int(item[0].split('/')[1]),
                                         int(item[0].split('/')[2])),
                     item_type='Exp',
                     group=Group.objects.filter(user=user).first(),
                     user=user))
        Item.objects.bulk_create(new_items)
        return len(new_items)
Beispiel #40
0
    def __init__(self,
                 symbol,
                 jyear: int,
                 jmonth: int,
                 jday: int,
                 load_from_cache: bool = True,
                 save_to_cache: bool = True,
                 save_raw_data: bool = False):
        self.symbol = symbol
        self.date = date(year=jyear, month=jmonth, day=jday)
        self.greg_date = self.date.togregorian()
        self.load_from_cache = load_from_cache
        self.save_to_cache = save_to_cache
        self.save_raw_data = save_raw_data

        self._is_no_data = False

        self._load()
Beispiel #41
0
    def test_comparison(self):
        today = jdatetime.date.today()
        self.assertEqual(False, today < today - jdatetime.timedelta(days=76))
        self.assertEqual(False, today <= today - jdatetime.timedelta(days=1))
        self.assertEqual(True, today + jdatetime.timedelta(days=1) > today)
        self.assertEqual(True, today + jdatetime.timedelta(days=30) >= today)
        self.assertEqual(True, today == today)
        self.assertEqual(False, today > today)
        self.assertEqual(False, today < today)
        self.assertEqual(True, today >= today)
        self.assertEqual(True, today <= today)
        not_today = jdatetime.date(today.year, today.month,
                                   today.day) + jdatetime.timedelta(days=1)
        self.assertEqual(True, today != not_today)

        dtg = jdatetime.datetime(1380, 12, 1, 1, 2, 4)
        self.assertEqual(True, dtg < dtg + jdatetime.timedelta(seconds=1))
        self.assertEqual(True, dtg - jdatetime.timedelta(seconds=1) < dtg)
        self.assertEqual(False, dtg is None)
Beispiel #42
0
def stringToDate(string):
    # this tree line use for convert persian date to gregorian
    string.split('/')
    firstY = string[0]
    seconY = string[1]
    thirdY = string[2]
    forthY = string[3]
    firstM = string[5]
    seconM = string[6]
    firstD = string[8]
    seconD = string[9]
    yearString = firstY + seconY + thirdY + forthY
    monthString = firstM + seconM
    dayString = firstD + seconD

    date = jdatetime.date(int(yearString),
                          int(monthString),
                          int(dayString),
                          locale='fa_IR')
    date = date.togregorian()
    return date
Beispiel #43
0
def get_formatted_jdatetime(datetime_object, object_type="datetime", show_seconds=True):
    year = datetime_object.year
    month = datetime_object.month
    day = datetime_object.day
    if object_type.lower() == "datetime":
        jobject = datetime(
            year,
            month,
            day,
            datetime_object.hour,
            datetime_object.minute,
            datetime_object.second,
            locale="fa_IR",
        )
        format_rule = "%a, %d %b %Y %H:%M:%S" if show_seconds else "%a, %d %b %Y %H:%M"
        return jobject.strftime(format_rule)
    elif object_type.lower() == "date":
        jobject = date(year, month, day, locale="fa_IR")
        return jobject.strftime("%a, %d %b %Y")
    else:
        raise ValueError("Unexpected argument was passed")
Beispiel #44
0
    def initialize(self):
        wb = load_workbook(filename='imev0/test2.xlsx', read_only=True)
        ws = wb.active  # ws is now an IterableWorksheet
        for row in ws:
            d = {}

            if row[0].value == 'تاریخ':
                continue
            dates = row[0].value.split('/')
            persian_date = jdate.date(int(dates[0]), int(dates[1]),
                                      int(dates[2]))

            d['date'] = persian_date
            d['name'] = row[1].value
            d['producer'] = row[2].value
            d['symbol'] = row[3].value
            d['contract_type'] = row[4].value
            d['supply'] = float(row[5].value)
            d['base_price'] = row[6].value
            d['suppliers_offer'] = row[7].value
            d['final_demand'] = row[8].value
            d['payan_sabz'] = row[9].value
            d['highest_demand_price'] = row[10].value
            d['traded_amount'] = row[11].value
            d['least_traded_price_rials'] = row[12].value
            d['Average_traded_price_rials'] = row[13].value
            d['Average_traded_price_origcurrency'] = row[14].value
            d['highest_traded_price_rials'] = row[15].value
            d['value_KRials'] = row[16].value
            d['delivery_date'] = row[17].value
            d['subgroup'] = row[18].value
            d['group'] = row[19].value
            d['main_group'] = row[20].value
            d['details'] = row[21].value
            d['supplier'] = row[22].value
            d['method_of_supply'] = row[23].value
            d['supply_code'] = row[24].value
            d['supply_type'] = row[25].value

            self.datas.append(d)
Beispiel #45
0
    def initialize(self):
        wb = load_workbook(filename='imev0/test2.xlsx', read_only=True)
        ws = wb.active  # ws is now an IterableWorksheet
        for row in ws:
            d = {}

            if row[0].value == 'تاریخ':
                continue
            dates = row[0].value.split('/')
            persian_date = jdate.date(int(dates[0]), int(dates[1]), int(dates[2]))

            d['date'] = persian_date
            d['name'] = row[1].value
            d['producer'] = row[2].value
            d['symbol'] = row[3].value
            d['contract_type'] = row[4].value
            d['supply'] = float(row[5].value)
            d['base_price'] = row[6].value
            d['suppliers_offer'] = row[7].value
            d['final_demand'] = row[8].value
            d['payan_sabz'] = row[9].value
            d['highest_demand_price'] = row[10].value
            d['traded_amount'] = row[11].value
            d['least_traded_price_rials'] = row[12].value
            d['Average_traded_price_rials'] = row[13].value
            d['Average_traded_price_origcurrency'] = row[14].value
            d['highest_traded_price_rials'] = row[15].value
            d['value_KRials'] = row[16].value
            d['delivery_date'] = row[17].value
            d['subgroup'] = row[18].value
            d['group'] = row[19].value
            d['main_group'] = row[20].value
            d['details'] = row[21].value
            d['supplier'] = row[22].value
            d['method_of_supply'] = row[23].value
            d['supply_code'] = row[24].value
            d['supply_type'] = row[25].value

            self.datas.append(d)
Beispiel #46
0
def sendDate(id, txt):
    if (len(txt) > 0):
        splitDay = txt.split("/")
        gregorian_date = jdatetime.date(int(splitDay[0]), int(splitDay[1]),
                                        int(splitDay[2])).togregorian()
        day = webdriver.find_element_by_xpath(
            "/html/body/div/div/div/div/div/div/div/section[2]/form/fieldset/div/div/fieldset/div/div[1]/div["
            + str(id) + "]/span[1]/input[1]")
        month = webdriver.find_element_by_xpath(
            "/html/body/div/div/div/div/div/div/div/section[2]/form/fieldset/div/div/fieldset/div/div[1]/div["
            + str(id) + "]/span[1]/input[2]")
        year = webdriver.find_element_by_xpath(
            "/html/body/div/div/div/div/div/div/div/section[2]/form/fieldset/div/div/fieldset/div/div[1]/div["
            + str(id) + "]/span[1]/input[3]")
        webdriver.execute_script(
            "arguments[0].setAttribute('value', '" + str(gregorian_date.day) +
            "')", day)
        webdriver.execute_script(
            "arguments[0].setAttribute('value', '" +
            str(gregorian_date.month - 1) + "')", month)
        webdriver.execute_script(
            "arguments[0].setAttribute('value', '" + str(gregorian_date.year) +
            "')", year)
Beispiel #47
0
 def post(self, request, *args, **kwargs):
     serialize_data = self.get_serializer(data=request.data)
     if serialize_data.is_valid():
         file = serialize_data.validated_data['file']
         xl = pd.ExcelFile(file)
         df = xl.parse(xl.sheet_names[0])
         for index, row in df.iterrows():
             if isinstance(row['date'], str):
                 date = datetime.strptime(row['date'], '%d/%m/%Y')
             else:
                 date = row['date']
             if date.year < 1900:
                 date = jdatetime.date(day=date.day,
                                       month=date.month,
                                       year=date.year).togregorian()
             name = row['name']
             price = row['price']
             total = row['total']
             try:
                 car = Car.objects.get(name=name)
             except Car.DoesNotExist as e:
                 car = Car(name=name)
                 car.save()
             car_stock = CarStock(car=car,
                                  price=price,
                                  total=total,
                                  date=date)
             car_stock.save()
         data = {}
         return responses.SuccessResponse(data, status=200).send()
     else:
         dev_error = serialize_data.errors
         message = 'Failed to upload {}'.format(
             serialize_data.data['file'].name)
         return responses.ErrorResponse(message=message,
                                        dev_error=dev_error,
                                        status=400).send()
Beispiel #48
0
    def mutate(self,info,id,date_jalali,time_range):
        if  not(time_range in ['A','B','C','D']):
            raise GraphQLError("time_range is in ['A','B','C','D']")

        basket = Basket.objects.get(user=info.context.user, pk=id)

        jdate = date_jalali.split("-")
        date = jdatetime.date(year=int(jdate[0]), month=int(jdate[1]), day=int(jdate[2])).togregorian()

        date_range = [datetime.date.today() + datetime.timedelta(i) for i in range(1, 6)]

        if date in date_range:
            time, created = DeliveryDate.objects.get_or_create(date=date, time_range=time_range)
        else:
            raise GraphQLError('date bayat beyn emroz ta 5 roze ayande bashad ') ######## in vaghean nabayad raise bashe


        if not(time.available):
            raise GraphQLError("IN BAZE ZAMANI POR SHODE ")

        if bool(basket.deliverydate) == True:
            previous_delivery_date = basket.deliverydate
            previous_delivery_date.capacity -= 1
            previous_delivery_date.save()
            basket.deliverydate = None
            basket.save()

        # import ipdb; ipdb.set_trace()

        time, created = DeliveryDate.objects.get_or_create(date=date, time_range=time_range)
        basket.deliverydate=time
        basket.save()
        # import ipdb; ipdb.set_trace()
        time.capacity+=1
        time.save()

        return AddDeliveryDate(delivery_datetime=time)
Beispiel #49
0
    def parse_date(self, date_obj):
        "Take a datetime object and convert it to jalali date"

        if isinstance(date_obj, datetime.datetime):
            return jdatetime.date.fromgregorian(date=date_obj.date())
        if isinstance(date_obj, datetime.date):
            return jdatetime.date.fromgregorian(date=date_obj)

        if not ansi_date_re.search(date_obj):
            raise exceptions.ValidationError(self.error_messages['invalid'])
        # Now that we have the date string in YYYY-MM-DD format, check to make
        # sure it's a valid date.
        # We could use time.strptime here and catch errors, but datetime.date
        # produces much friendlier error messages.
        year, month, day = map(int, date_obj.split('-'))
        try:
            if year > 1500:
                return jdatetime.date.fromgregorian(
                    date=datetime.date(year, month, day))
            else:
                return jdatetime.date(year, month, day)
        except ValueError as e:
            msg = self.error_messages['invalid_date'] % _(str(e))
            raise exceptions.ValidationError(msg)
Beispiel #50
0
 def test_dates_are_not_equal_if_locales_are_different(self):
     date_fa = jdatetime.date(1397, 4, 22, locale='fa_IR')
     date_nl = jdatetime.date(1397, 4, 22, locale='nl_NL')
     self.assertNotEqual(date_fa, date_nl)
Beispiel #51
0
 def test_init_accepts_instance_locale(self):
     date = jdatetime.date(1397, 4, 23, locale=jdatetime.FA_LOCALE)
     self.assertEqual(date.strftime('%A'), u'شنبه')
Beispiel #52
0
 def test_replace_keeps_the_locale_of_source_date(self):
     date = jdatetime.date(1397, 4, 22, locale='nl_NL')
     other_date = date.replace(day=20)
     self.assertEqual(other_date.day, 20)
     self.assertEqual(other_date.locale, 'nl_NL')
Beispiel #53
0
 def setUp(self):
     date_time = jdatetime.date(1394, 11, 25)
     self.context = Context({'date_time': date_time})
Beispiel #54
0
    def test_combine(self):
        t = jdatetime.time(12, 13, 14)
        d = jdatetime.date(1390, 4, 5)
        dt = jdatetime.datetime(1390, 4, 5, 12, 13, 14)

        self.assertEqual(True, jdatetime.datetime.combine(d, t) == dt)
Beispiel #55
0
    def test_datetime(self):
        d = jdatetime.datetime(1390, 1, 2, 12, 13, 14)

        self.assertEqual(True, d.time() == jdatetime.time(12, 13, 14))
        self.assertEqual(True, d.date() == jdatetime.date(1390, 1, 2))
Beispiel #56
0
    def test_diffrent_saving(self):
        jd_model = jDateModel(date="1391-01-01")
        jd_model.save()

        jd_model = jDateModel(date=datetime.datetime.now())
        jd_model.save()

        # jd_model = jDateModel()
        # jd_model.save()

        jd_model = jDateModel(date=jdatetime.datetime.now())
        jd_model.save()

        # to_python
        jdt_model = jDateTimeModel(date_time="1391-01-01")
        # TODO: Find the correct exceptions
        # with self.assertRaises(Exception):
        #    jdt_model.date_time = None

        jdt_model.date_time = datetime.datetime(1390, 01, 02)
        jdt_model.save()
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time=datetime.datetime(1390, 01, 02))[0].date_time, jdt_model.date_time
        )

        jdt_model.date_time = jdatetime.date.today()
        jdt_model.save()
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time=jdatetime.date.today())[0].date_time, jdt_model.date_time
        )

        jdt_model.date_time = datetime.date.today()
        jdt_model.save()
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time=datetime.date.today())[0].date_time, jdt_model.date_time
        )

        jdt_model.date_time = datetime.date(1390, 01, 01)
        jdt_model.save()
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time=jdatetime.date(1390, 01, 01))[0].date_time, jdt_model.date_time
        )

        jdt_model.date_time = "1391-01-01 12:12"
        jdt_model.save()
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time=jdatetime.datetime(1391, 01, 01, 12, 12))[0].date_time,
            jdt_model.date_time,
        )

        jdt_model.date_time = "1391-01-01 12:12:12"
        jdt_model.save()
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time=jdatetime.datetime(1391, 01, 01, 12, 12, 12))[0].date_time,
            jdt_model.date_time,
        )

        jdt_model.date_time = "2012-01-01 12:12"
        jdt_model.save()
        # TODO: fixme, I'm broken ! I dunno if I ever should be exist
        # self.assertEqual(jDateTimeModel.objects.filter(date_time=datetime.datetime(2012, 01, 01, 12, 12))[0].date_time, jdt_model.date_time)
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time="2012-01-01 12:12")[0].date_time,
            jdatetime.datetime(1390, 10, 11, 12, 12),
        )

        jdt_model.date_time = "2012-01-01"
        jdt_model.save()
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time="2012-01-01")[0].date_time, jdatetime.datetime(1390, 10, 11)
        )

        jdt_model.date_time = "2012-01-01 12:12:12"
        jdt_model.save()
        self.assertEqual(
            jDateTimeModel.objects.filter(date_time="2012-01-01 12:12:12")[0].date_time,
            jdatetime.datetime(1390, 10, 11, 12, 12, 12),
        )

        jdt_model.date_time = "1391-01-01 12:12:12.2222"
        jdt_model.save()
        self.assertEqual(jDateTimeModel.objects.filter(date_time="1391-01-01 12:12:12.2222")[0], jdt_model)
Beispiel #57
0

def run(command):
    output = subprocess.check_output(command, shell=True)
    return output.decode('UTF-8').strip()


run("wget -qO {} http://p.hiweb.ir --save-cookies={} --keep-session-cookies".format(TMP_FILE, COOKIE_FILE))
remain = run("cat {} | grep -Poh '<tr.*?</tr>' | grep  'مگابایت' | grep -o '[0-9.]*' | head -n1".format(TMP_FILE))
remain = round(float(remain) / 4000, 2)
service_days = run("cat {} | grep -Poh '<tr.*?</tr>' | grep 'روزهای باقیمانده'| grep -o '[0-9]*'".format(TMP_FILE))
service_days = int(service_days)
run("wget -qO {} http://panel.hiweb.ir/xhr/usl.php\?user\=551402\&action\=load_usl --load-cookies={}".format(TMP_FILE, COOKIE_FILE))
credit = run("cat {} | grep -Poh '<td.*?</td>' | sed '7q;d' | grep -oh '[0-9]*\/[0-9]*\/[0-9]*'".format(TMP_FILE))
d = time.strptime('13' + credit, '%Y/%m/%d')
credit_end_date = jdatetime.date(d.tm_year, d.tm_mon, d.tm_mday).togregorian()
delta = credit_end_date - date.today()
credit_days = delta.days
days = min(credit_days, service_days)

if days >= 0 and days < 3:
    print("🌐 {} GB <font color='red'>in {} days</font>".format(remain, days))
else:
    print("🌐 {} GB".format(remain))

print("---")
print("In {} days (service)".format(service_days))

if credit_days >= 0:
    print("In {} days (credit)".format(credit_days))
Beispiel #58
0
 def record_locale_formatted_date(record, locale):
     jdatetime.set_locale(locale)
     dt = jdatetime.date(1397, 3, 27)
     record.append(dt.strftime('%A'))
     record.append(dt.strftime('%B'))
Beispiel #59
0
 def setUp(self):
     self.today_string = "1390-5-12"
     self.today = jdatetime.date(1390, 5, 12)
     self.mybar = Bar(name="foo", date=self.today)
     self.mybar.save()
Beispiel #60
0
 def test_locale_property_returns_locale(self):
     date = jdatetime.date(1397, 4, 22, locale='nl_NL')
     self.assertEqual(date.locale, 'nl_NL')