README.md
# Japanese Calendar [![Gem Version](https://badge.fury.io/rb/japanese_calendar.svg)](https://badge.fury.io/rb/japanese_calendar) [![Build Status](https://travis-ci.org/RyoYamamotoJP/japanese_calendar.svg?branch=master)](https://travis-ci.org/RyoYamamotoJP/japanese_calendar) [![Maintainability](https://api.codeclimate.com/v1/badges/661b3d2765caae7906c6/maintainability)](https://codeclimate.com/github/RyoYamamotoJP/japanese_calendar/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/661b3d2765caae7906c6/test_coverage)](https://codeclimate.com/github/RyoYamamotoJP/japanese_calendar/test_coverage)
Japanese calendar utility for Ruby.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'japanese_calendar'
```
And then execute:
$ bundle
Or install it yourself as:
$ gem install japanese_calendar
## Usage
To get the Japanese era name, use the `era_name` method:
```
Time.new(2019, 5, 1).era_name # => "令和"
Time.new(1989, 1, 8).era_name # => "平成"
Time.new(1926, 12, 25).era_name # => "昭和"
Time.new(1912, 7, 30).era_name # => "大正"
Time.new(1873, 1, 1).era_name # => "明治"
```
If you want to get the Japanese era name in romaji, pass `:romaji`:
```
Time.new(2019, 5, 1).era_name(:romaji) # => "Reiwa"
Time.new(1989, 1, 8).era_name(:romaji) # => "Heisei"
Time.new(1926, 12, 25).era_name(:romaji) # => "Showa"
Time.new(1912, 7, 30).era_name(:romaji) # => "Taisho"
Time.new(1873, 1, 1).era_name(:romaji) # => "Meiji"
```
The following examples show how to check the Japanese era:
```
Time.new(2019, 5, 1).reiwa? # => true
Time.new(1989, 1, 8).heisei? # => true
Time.new(1926, 12, 25).showa? # => true
Time.new(1912, 7, 30).taisho? # => true
Time.new(1873, 1, 1).meiji? # => true
```
You can convert to a Japanese year with the `era_year` method:
```
Time.new(2019, 5, 1).era_year # => 1
Time.new(2019, 4, 30).era_year # => 31
Time.new(1989, 1, 7).era_year # => 64
Time.new(1926, 12, 24).era_year # => 15
Time.new(1912, 7, 29).era_year # => 45
```
To get a string representation of the Japanese calendar, use the `strftime` method:
```
time = Time.new(2019, 5, 1)
# Japanese era
time.strftime("%JN") # => "令和"
time.strftime("%Jn") # => "令"
time.strftime("%JR") # => "Reiwa"
time.strftime("%^JR") # => "REIWA"
time.strftime("%Jr") # => "R"
time.strftime("%Jy") # => "01"
time.strftime("%-Jy") # => "1"
time.strftime("%_Jy") # => " 1"
# Japanese weekday name
time.strftime("%JA") # => "水曜日"
time.strftime("%Ja") # => "水"
# More examples
time.strftime("%JN%-Jy年%-m月%-d日(%Ja)") # => "令和1年5月1日(水)"
time.strftime("%Jr%Jy.%m.%d") # => "R01.05.01"
time.strftime("%B %-d, %-Y (%JR %-Jy)") # => "May 1, 2019 (Reiwa 1)"
```
## Development
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/RyoYamamotoJP/japanese_calendar. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).