我们从Python开源项目中,提取了以下46个代码示例,用于说明如何使用calendar.month_abbr()。
def monthlytable(nav): """ Get a table of monthly returns :param nav: :return: """ r = nav.pct_change().dropna() # Works better in the first month # Compute all the intramonth-returns, instead of reapplying some monthly resampling of the NAV return_monthly = r.groupby([lambda x: x.year, lambda x: x.month]).apply(lambda x: (1 + x).prod() - 1.0) frame = return_monthly.unstack(level=1).rename(columns=lambda x: calendar.month_abbr[x]) a = (frame + 1.0).prod(axis=1) - 1.0 frame["STDev"] = np.sqrt(12) * frame.std(axis=1) # make sure that you don't include the column for the STDev in your computation frame["YTD"] = a frame.index.name = "year" # most recent years on top return frame.iloc[::-1]
def get_months(start_date, months, include_year=False): """ Returns a list of months abbreviations starting from start_date :param include_year: :param start_date: :param months: number of previous months to return :return: list of months abbr if not include_year, else list of list [year, month] """ result = [] for i in range(months): start_date -= datetime.timedelta(days=calendar.monthrange(start_date.year, start_date.month)[1]) if include_year: result.append([start_date.year, calendar.month_abbr[start_date.month]]) else: result.append(calendar.month_abbr[start_date.month]) return result
def get_months_with_last_same_as_first(start_date, months, include_year=False): """ Returns a list of months abbreviations starting from start_date, and last month is the same is first month (i.e. extra month) :param include_year: :param start_date: :param months: number of previous months to return :return: list of months abbr if not include_year, else list of tuple [year, month] """ if include_year: months = get_months(datetime.date.today(), 12, include_year=True) # update last month to have current year months = [[start_date.year, calendar.month_abbr[start_date.month]]] + months else: months = get_months(datetime.date.today(), 12) # append current month to front of list months = [months[-1]] + months return months
def __calc_month(self): # Set self.f_month and self.a_month using the calendar module. a_month = [calendar.month_abbr[i].lower() for i in range(13)] f_month = [calendar.month_name[i].lower() for i in range(13)] self.a_month = a_month self.f_month = f_month
def get_date(): import time import calendar local = time.localtime(time.time()) nth = ["st", "nd", "rd", None][min(3, local.tm_mday % 10 - 1)] or 'th' return "%s %d%s %d @ %02d:%02d" % ( calendar.month_abbr[local.tm_mon], local.tm_mday, nth, local.tm_year, local.tm_hour, local.tm_min)
def get_month_number(self, month): names = dict((v, k) for k, v in enumerate(calendar.month_name)) abbrs = dict((v, k) for k, v in enumerate(calendar.month_abbr)) month_str = month.title() try: return names[month_str] except KeyError: try: return abbrs[month_str] except KeyError: return 0
def test_name(self): # abbreviations for i, name in enumerate(calendar.month_abbr[1:]): self.assertEquals(MonthSetBuilder().build(name), {i + 1}) self.assertEquals(MonthSetBuilder().build(name.lower()), {i + 1}) self.assertEquals(MonthSetBuilder().build(name.upper()), {i + 1}) # full names for i, name in enumerate(calendar.month_name[1:]): self.assertEquals(MonthSetBuilder().build(name), {i + 1}) self.assertEquals(MonthSetBuilder().build(name.lower()), {i + 1}) self.assertEquals(MonthSetBuilder().build(name.upper()), {i + 1})
def __init__(self, wrap=True, ignorecase=True): """ Initializes set builder for month sets :param wrap: Set to True to allow wrapping at last month of the year :param ignorecase: Set to True to ignore case when mapping month names """ SetBuilder.__init__(self, names=calendar.month_abbr[1:], significant_name_characters=3, offset=1, ignorecase=ignorecase, wrap=wrap)
def change_date(m): mon_name = month_abbr[int(m.group(1))] return '{} {} {}'.format(m.group(2), mon_name, m.group(3))
def index_file(self, filename): """Reads a datafile and returns a dict index of the starting lines for each year and lists of starting lines for each month over each year. """ import calendar _reads = 0 _return_dict = {} with open(filename, 'r') as _data_file: _last_year = '' _last_month = '' for _data_line in _data_file: _reads += 1 try: _year = str(_data_line[13:17]) _month = calendar.month_abbr[int(_data_line[17:19])] if _year != _last_year: _return_dict[_year] = _reads - 1 _last_year = _year if _month != _last_month: try: _return_dict[_month].append(_reads - 1) except KeyError: _return_dict[_month] = [_reads - 1] _last_month = _month except ValueError: continue return _return_dict
def index_file(filename): """Reads a datafile and returns a dict index of the starting lines for each year and lists of starting lines for each month over each year. """ import calendar _reads = 0 _return_dict = {} with open(filename, 'r') as _data_file: _last_year = '' _last_month = '' for _data_line in _data_file: _reads += 1 try: _year = str(_data_line[13:17]) _month = calendar.month_abbr[int(_data_line[17:19])] if _year != _last_year: _return_dict[_year] = _reads - 1 _last_year = _year if _month != _last_month: try: _return_dict[_month].append(_reads - 1) except KeyError: _return_dict[_month] = [_reads - 1] _last_month = _month except ValueError: continue return _return_dict
def change_data(m): from calendar import month_abbr mon_name = month_abbr[int(m.group(1))] return '{} {} {}'.format(m.group(2), mon_name, m.group(3))
def strftest1(self, now): if support.verbose: print("strftime test for", time.ctime(now)) now = self.now # Make sure any characters that could be taken as regex syntax is # escaped in escapestr() expectations = ( ('%a', calendar.day_abbr[now[6]], 'abbreviated weekday name'), ('%A', calendar.day_name[now[6]], 'full weekday name'), ('%b', calendar.month_abbr[now[1]], 'abbreviated month name'), ('%B', calendar.month_name[now[1]], 'full month name'), # %c see below ('%d', '%02d' % now[2], 'day of month as number (00-31)'), ('%H', '%02d' % now[3], 'hour (00-23)'), ('%I', '%02d' % self.clock12, 'hour (01-12)'), ('%j', '%03d' % now[7], 'julian day (001-366)'), ('%m', '%02d' % now[1], 'month as number (01-12)'), ('%M', '%02d' % now[4], 'minute, (00-59)'), ('%p', self.ampm, 'AM or PM as appropriate'), ('%S', '%02d' % now[5], 'seconds of current time (00-60)'), ('%U', '%02d' % ((now[7] + self.jan1[6])//7), 'week number of the year (Sun 1st)'), ('%w', '0?%d' % ((1+now[6]) % 7), 'weekday as a number (Sun 1st)'), ('%W', '%02d' % ((now[7] + (self.jan1[6] - 1)%7)//7), 'week number of the year (Mon 1st)'), # %x see below ('%X', '%02d:%02d:%02d' % (now[3], now[4], now[5]), '%H:%M:%S'), ('%y', '%02d' % (now[0]%100), 'year without century'), ('%Y', '%d' % now[0], 'year with century'), # %Z see below ('%%', '%', 'single percent sign'), ) for e in expectations: # musn't raise a value error try: result = time.strftime(e[0], now) except ValueError as error: self.fail("strftime '%s' format gave error: %s" % (e[0], error)) if re.match(escapestr(e[1], self.ampm), result): continue if not result or result[0] == '%': self.fail("strftime does not support standard '%s' format (%s)" % (e[0], e[2])) else: self.fail("Conflict for %s (%s): expected %s, but got %s" % (e[0], e[2], e[1], result))
def strftest2(self, now): nowsecs = str(int(now))[:-1] now = self.now nonstandard_expectations = ( # These are standard but don't have predictable output ('%c', fixasctime(time.asctime(now)), 'near-asctime() format'), ('%x', '%02d/%02d/%02d' % (now[1], now[2], (now[0]%100)), '%m/%d/%y %H:%M:%S'), ('%Z', '%s' % self.tz, 'time zone name'), # These are some platform specific extensions ('%D', '%02d/%02d/%02d' % (now[1], now[2], (now[0]%100)), 'mm/dd/yy'), ('%e', '%2d' % now[2], 'day of month as number, blank padded ( 0-31)'), ('%h', calendar.month_abbr[now[1]], 'abbreviated month name'), ('%k', '%2d' % now[3], 'hour, blank padded ( 0-23)'), ('%n', '\n', 'newline character'), ('%r', '%02d:%02d:%02d %s' % (self.clock12, now[4], now[5], self.ampm), '%I:%M:%S %p'), ('%R', '%02d:%02d' % (now[3], now[4]), '%H:%M'), ('%s', nowsecs, 'seconds since the Epoch in UCT'), ('%t', '\t', 'tab character'), ('%T', '%02d:%02d:%02d' % (now[3], now[4], now[5]), '%H:%M:%S'), ('%3y', '%03d' % (now[0]%100), 'year without century rendered using fieldwidth'), ) for e in nonstandard_expectations: try: result = time.strftime(e[0], now) except ValueError as result: msg = "Error for nonstandard '%s' format (%s): %s" % \ (e[0], e[2], str(result)) if support.verbose: print(msg) continue if re.match(escapestr(e[1], self.ampm), result): if support.verbose: print("Supports nonstandard '%s' format (%s)" % (e[0], e[2])) elif not result or result[0] == '%': if support.verbose: print("Does not appear to support '%s' format (%s)" % \ (e[0], e[2])) else: if support.verbose: print("Conflict for nonstandard '%s' format (%s):" % \ (e[0], e[2])) print(" Expected %s, but got %s" % (e[1], result))
def monthly_labels(t1, t2, every=6): """Returns labels for the months between two dates. The first label corresponds to the starting month, while the last label corresponds to the month after the ending month. This is done for better bracketing of the plot. By default, only the label every 6 months is non-empty. Parameters ---------- t1 : datetime object Starting date t2 : datetime object End date every : int, default is 6 Returns ------- list """ # Start from first day of month, for bracketing labels = [] if t2.year > t1.year: # append months until the end of the year for month in range(t1.month, 13): labels.append(calendar.month_abbr[month][:3]) for year in range(t1.year + 1, t2.year): for month in range(1, 13): labels.append(calendar.month_abbr[month][:3]) for month in range(1, (t2.month % 12) + 1): labels.append(calendar.month_abbr[month][:3]) else: for month in range(t1.month, (t2.month % 12) + 1): labels.append(calendar.month_abbr[month][:3]) # append next month for bracketing labels.append(calendar.month_abbr[(t2.month % 12) + 1][:3]) labels = [labels[i] if i % every == 0 else '' for i in range(len(labels))] return labels
def strftest1(self, now): if test_support.verbose: print "strftime test for", time.ctime(now) now = self.now # Make sure any characters that could be taken as regex syntax is # escaped in escapestr() expectations = ( ('%a', calendar.day_abbr[now[6]], 'abbreviated weekday name'), ('%A', calendar.day_name[now[6]], 'full weekday name'), ('%b', calendar.month_abbr[now[1]], 'abbreviated month name'), ('%B', calendar.month_name[now[1]], 'full month name'), # %c see below ('%d', '%02d' % now[2], 'day of month as number (00-31)'), ('%H', '%02d' % now[3], 'hour (00-23)'), ('%I', '%02d' % self.clock12, 'hour (01-12)'), ('%j', '%03d' % now[7], 'julian day (001-366)'), ('%m', '%02d' % now[1], 'month as number (01-12)'), ('%M', '%02d' % now[4], 'minute, (00-59)'), ('%p', self.ampm, 'AM or PM as appropriate'), ('%S', '%02d' % now[5], 'seconds of current time (00-60)'), ('%U', '%02d' % ((now[7] + self.jan1[6])//7), 'week number of the year (Sun 1st)'), ('%w', '0?%d' % ((1+now[6]) % 7), 'weekday as a number (Sun 1st)'), ('%W', '%02d' % ((now[7] + (self.jan1[6] - 1)%7)//7), 'week number of the year (Mon 1st)'), # %x see below ('%X', '%02d:%02d:%02d' % (now[3], now[4], now[5]), '%H:%M:%S'), ('%y', '%02d' % (now[0]%100), 'year without century'), ('%Y', '%d' % now[0], 'year with century'), # %Z see below ('%%', '%', 'single percent sign'), ) for e in expectations: # musn't raise a value error try: result = time.strftime(e[0], now) except ValueError, error: self.fail("strftime '%s' format gave error: %s" % (e[0], error)) if re.match(escapestr(e[1], self.ampm), result): continue if not result or result[0] == '%': self.fail("strftime does not support standard '%s' format (%s)" % (e[0], e[2])) else: self.fail("Conflict for %s (%s): expected %s, but got %s" % (e[0], e[2], e[1], result))
def strftest2(self, now): nowsecs = str(long(now))[:-1] now = self.now nonstandard_expectations = ( # These are standard but don't have predictable output ('%c', fixasctime(time.asctime(now)), 'near-asctime() format'), ('%x', '%02d/%02d/%02d' % (now[1], now[2], (now[0]%100)), '%m/%d/%y %H:%M:%S'), ('%Z', '%s' % self.tz, 'time zone name'), # These are some platform specific extensions ('%D', '%02d/%02d/%02d' % (now[1], now[2], (now[0]%100)), 'mm/dd/yy'), ('%e', '%2d' % now[2], 'day of month as number, blank padded ( 0-31)'), ('%h', calendar.month_abbr[now[1]], 'abbreviated month name'), ('%k', '%2d' % now[3], 'hour, blank padded ( 0-23)'), ('%n', '\n', 'newline character'), ('%r', '%02d:%02d:%02d %s' % (self.clock12, now[4], now[5], self.ampm), '%I:%M:%S %p'), ('%R', '%02d:%02d' % (now[3], now[4]), '%H:%M'), ('%s', nowsecs, 'seconds since the Epoch in UCT'), ('%t', '\t', 'tab character'), ('%T', '%02d:%02d:%02d' % (now[3], now[4], now[5]), '%H:%M:%S'), ('%3y', '%03d' % (now[0]%100), 'year without century rendered using fieldwidth'), ) for e in nonstandard_expectations: try: result = time.strftime(e[0], now) except ValueError, result: msg = "Error for nonstandard '%s' format (%s): %s" % \ (e[0], e[2], str(result)) if test_support.verbose: print msg continue if re.match(escapestr(e[1], self.ampm), result): if test_support.verbose: print "Supports nonstandard '%s' format (%s)" % (e[0], e[2]) elif not result or result[0] == '%': if test_support.verbose: print "Does not appear to support '%s' format (%s)" % \ (e[0], e[2]) else: if test_support.verbose: print "Conflict for nonstandard '%s' format (%s):" % \ (e[0], e[2]) print " Expected %s, but got %s" % (e[1], result)