Popularity
1.3
Growing
Activity
0.0
Stable
76
2
1

Code Quality Rank: L5
Monthly Downloads: 13
Programming language: Ruby
License: MIT License
Latest version: v0.0.1

yymmdd alternatives and similar gems

Based on the "Date and Time Processing" category

Do you think we are missing an alternative of yymmdd or a related project?

Add another 'Date and Time Processing' Gem

README

YYMMDD

Build Status

Tiny DSL for idiomatic date parsing and formatting.

Overview

require "yymmdd"

include YYMMDD

puts yy/mm              # 14/08 (i.e., today's date)
puts yyyy/mm            # 2014/08
date = ymd(411207)      # Date.new(1941, 12, 7)

date = Date.today
puts yyyy.mm.dd(date)   # 2014.08.09
puts dd/mm/yy(date)     # 08/09/14
puts ymd(date)          # 1489
puts yymmdd(date)       # 140809

date = yyyy.mm.dd("1941.12.07")  # Date.new(1941, 12, 7)
date = mm.dd.yy("11.22.63")      # Date.new(1963, 11, 22)
date = mm/dd/yy("11/21/99")      # ...
date = mm/dd/yyyy("11/21/1999")
date = mm-dd-yyyy("11-21-1999")
date = m-d-y("11-21-99")

Installation

Rubygems:

gem install yymmdd

Bundler:

gem "yymmdd"

Usage

All functions are module_functions so you must include YYMMDD to use them.

When given a String it will attempt to parse it as the specified format and return a Date.

When given a Date it will return a String in the specified format.

An ArgumentError is raised if the date can't be parsed or formatted.

With no arguments it will return an instance of a String-like object (it overrides to_s and to_str) representing today's date in the specified format. In the most common cases you can treat it like a String:

date = yyyy/mm/dd
puts "Today's date: #{date}"
text = ["Dates: ", yy/mm, yyyy/mm].join(", ")
text = "A great date: " << date

But in some instances you'll have to expilictly call to_s:

printf "Today's date: %s\n", date.to_s

All the heavy lifting is done by Date#strftime and Date.strptime.

Format Specifiers

The table below lists the available format specifiers. All of these can be separated by one of the supported delimiters: "/", ".", or "-".

NameFormat dday of the year, no 0 padding ddday of the year mday of the month, no 0 padding mmday of the month y2 digit year yy2 digit year yyyy4 digit year

There are also combined, delimiterless functions for all combinations of the above, e.g., ymd, mdy, yymmdd, etc...

Caveats

Due to operator precedence you can't mix delimiters.

Author

Skye Shaw [sshaw AT gmail.com]

License

Released under the MIT License: www.opensource.org/licenses/MIT


*Note that all licence references and agreements mentioned in the yymmdd README section above are relevant to that project's source code only.