1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* sample/cal.rb: just updated with the newest version.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@14837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
tadf 2008-01-02 00:07:46 +00:00
parent 3729e62609
commit bfe31ce266
2 changed files with 49 additions and 35 deletions

View file

@ -1,3 +1,7 @@
Wed Jan 2 09:06:55 2008 Tadayoshi Funaba <tadf@dotrb.org>
* sample/cal.rb: just updated with the newest version.
Mon Dec 31 06:50:38 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* trunk/common.mk: not use -I$(srcdir)/lib with $(MINIRUBY) for cross

View file

@ -1,7 +1,7 @@
#! /usr/bin/env ruby
# cal.rb: Written by Tadayoshi Funaba 1998-2004
# $Id: cal.rb,v 2.7 2004-01-10 23:52:51+09 tadf Exp $
# cal.rb: Written by Tadayoshi Funaba 1998-2004,2006
# $Id: cal.rb,v 2.10 2006-12-30 21:44:44+09 tadf Exp $
require 'date'
@ -9,25 +9,25 @@ class Cal
START =
{
'cn' => true, # China
'de' => 2342032, # Germany (protestant states)
'dk' => 2342032, # Denmark
'es' => 2299161, # Spain
'fi' => 2361390, # Finland
'fr' => 2299227, # France
'gb' => 2361222, # United Kingdom
'gr' => 2423868, # Greece
'hu' => 2301004, # Hungary
'it' => 2299161, # Italy
'jp' => true, # Japan
'no' => 2342032, # Norway
'pl' => 2299161, # Poland
'pt' => 2299161, # Portugal
'ru' => 2421639, # Russia
'se' => 2361390, # Sweden
'us' => 2361222, # United States
'os' => false, # (old style)
'ns' => true # (new style)
'cn' => Date::GREGORIAN, # China
'de' => 2342032, # Germany (protestant states)
'dk' => 2342032, # Denmark
'es' => 2299161, # Spain
'fi' => 2361390, # Finland
'fr' => 2299227, # France
'gb' => 2361222, # United Kingdom
'gr' => 2423868, # Greece
'hu' => 2301004, # Hungary
'it' => 2299161, # Italy
'jp' => Date::GREGORIAN, # Japan
'no' => 2342032, # Norway
'pl' => 2299161, # Poland
'pt' => 2299161, # Portugal
'ru' => 2421639, # Russia
'se' => 2361390, # Sweden
'us' => 2361222, # United States
'os' => Date::JULIAN, # (old style)
'ns' => Date::GREGORIAN # (new style)
}
DEFAULT_START = 'gb'
@ -72,7 +72,7 @@ class Cal
ca = %w(January February March April May June July
August September October November December)[m - 1]
ca = ca + ' ' + y.to_s if not @opt_y
ca = ca + ' ' + y.to_s if !@opt_y
ca = ca.center(@mw)
ta.unshift(ca)
@ -121,33 +121,43 @@ end
if __FILE__ == $0
require 'getopts'
require 'getoptlong'
def usage
warn 'usage: cal [-c iso3166] [-jmty] [[month] year]'
exit 1
end
usage unless getopts('jmty', "c:#{Cal::DEFAULT_START}")
cal = Cal.new
begin
GetoptLong.new(['-c', GetoptLong::REQUIRED_ARGUMENT],
['-j', GetoptLong::NO_ARGUMENT],
['-m', GetoptLong::NO_ARGUMENT],
['-t', GetoptLong::NO_ARGUMENT],
['-y', GetoptLong::NO_ARGUMENT]).
each do |opt, arg|
case opt
when '-c'; cal.opt_c(arg) || raise
when '-j'; cal.opt_j(true)
when '-m'; cal.opt_m(true)
when '-t'; cal.opt_t(true)
when '-y'; cal.opt_y(true)
end
end
rescue
usage
end
y, m = ARGV.values_at(1, 0).compact.collect{|x| x.to_i}
$OPT_y ||= (y and not m)
cal.opt_y(true) if y && !m
to = Date.today
y ||= to.year
m ||= to.mon
usage unless m >= 1 and m <= 12
usage unless m >= 1 && m <= 12
usage unless y >= -4712
usage if Cal::START[$OPT_c].nil?
cal = Cal.new
cal.opt_j($OPT_j)
cal.opt_m($OPT_m)
cal.opt_t($OPT_t)
cal.opt_y($OPT_y)
cal.opt_c($OPT_c)
print cal.print(y, m)