README.md in merch_calendar-0.1.0 vs README.md in merch_calendar-0.3.0

- old
+ new

@@ -22,38 +22,41 @@ ## Usage For converting a date into a `MerchWeek` object. ```ruby -merch_week = MerchCalendar::MerchWeek.from_date("2014-01-01") +merch_week = MerchCalendar::MerchWeek.from_date("2014-01-01", calendar: MerchCalendar::RetailCalendar.new) merch_week.year # 2013 (the merch year associated with this date) merch_week.month # 12 (the julian month that the date falls in) merch_week.week # 5 (the week number within the month) -merch_week.year_week # 48 (the week number within the year) -merch_week.quarter # 2 +merch_week.year_week # 48 (the week number within the retail calendar year) +merch_week.quarter # 4 merch_week.start_of_week # <Date: 2013-12-29> merch_week.end_of_week # <Date: 2014-01-04> merch_week.start_of_month # <Date: 2013-12-01> merch_week.end_of_month # <Date: 2014-01-04> merch_week.start_of_year # <Date: 2013-02-03> merch_week.end_of_year # <Date: 2014-02-01> +merch_week.calendar # <MerchCalendar::RetailCalendar> (the calendar we're using) + # if you don't initialize a calendar, it defaults to RetailCalendar + # Formatting merch_week.to_s # "Dec W5" merch_week.to_s(:short) # "Dec W5" merch_week.to_s(:long) # "2013:48 Dec W5" merch_week.to_s(:elasticsearch) # "2013-12w05" ``` ### Merch retail calendar -Merch calendars have their first month in February, and the last (12th) month is in January of the +Retail calendars have their first month in February, and the last (12th) month is in January of the following year. ```ruby # This is asking "In the Merch year of 2014, what is the Gregorian calendar date of # the start of the first month?" @@ -100,30 +103,62 @@ # get the end date of a given merch week retail_calendar.end_of_week(2017, 4, 1) #=> #<Date: 2017-05-06 ((2457880j,0s,0n),+0s,2299161j)> ``` -### Offset fiscal year calendars -Some companies, one of which being Stitch Fix, operate on a fiscal year calendar that is offset from -the traditional retail calendar. The `MerchCalendar::FiscalYearCalendar` class allows you to easily -offset the start of year to match your fiscal calendar. +### Stitch Fix Fiscal Year Calendars +Some companies, one of which being Stitch Fix, operate on a fiscal year calendar that instead starts in August +rather than in February in a the traditional retail calendar. The `MerchCalendar::StitchFixFiscalYearCalendar` class +allows you to easily translate Gregorian dates to a Stitch Fix Fiscal Year date. ```ruby -fiscal_calendar = MerchCalendar::FiscalYearCalendar.new +fiscal_calendar = MerchCalendar::StitchFixFiscalYearCalendar.new -# 52 or 53 (depending on leap year) -fiscal_calendar.weeks_in_year(2017) -# => 52 fiscal_calendar.weeks_in_year(2018) +# => 52 +fiscal_calendar.weeks_in_year(2019) # => 53 # get the start date of a given merch week fiscal_calendar.start_of_week(2017, 1, 1) # => #<Date: 2016-07-31 ((2457601j,0s,0n),+0s,2299161j)> # get the end date of a given merch week fiscal_calendar.end_of_week(2017, 4, 1) #=> #<Date: 2017-05-06 ((2457880j,0s,0n),+0s,2299161j)> +``` + +#### Stitch Fix Fiscal Year Calendar in Relation to MerchWeek object +You can set MerchWeek object respond to the Stitch Fix Fiscal Calendar, by passing in `StitchFixFiscalYearCalendar.new` in the calendar parameter: + +```ruby +merch_week = MerchCalendar::MerchWeek.from_date("2018-07-02", calendar: MerchCalendar::StitchFixFiscalYearCalendar.new) + +merch_week.year # 2018 (the merch year associated with this date) +merch_week.month # 7 (the julian month that the date falls in) +merch_week.merch_month # 12 (this fiscal month the date falls in) +merch_week.week # 1 (the week number within the month) +merch_week.year_week # 49 (the week number within the retail calendar year) +merch_week.quarter # 4 + +merch_week.start_of_week # <Date: 2018-07-01> +merch_week.end_of_week # <Date: 2018-07-07> + +merch_week.start_of_month # <Date: 2018-07-01> +merch_week.end_of_month # <Date: 2018-07-28> + +merch_week.start_of_year # <Date: 2017-07-30> +merch_week.end_of_year # <Date: 2018-07-28> + +merch_week.calendar # <MerchCalendar::StitchFixFiscalYearCalendar> (the calendar + # we're using) + # if you don't initialize a calendar, it defaults to RetailCalendar + +# Formatting +merch_week.to_s # "Jul W1" +merch_week.to_s(:short) # "Jul W1" +merch_week.to_s(:long) # "2018:49 Jul W1" +merch_week.to_s(:elasticsearch) # "2018-07w01" ``` ## Documentation You can view the documentation for this gem on [RubyDoc.info](http://www.rubydoc.info/github/stitchfix/merch_calendar/master).