• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Ruby练习---指定年月日历打印

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

闲来没事,用Ruby写个小程序。 感觉那个Date类,取得指定月的最后一天有点麻烦,为什么不封装一个方法直接获取呢。

直接上代码吧

 

#! ruby -Ku

require "date"

$weekdays = %w{日 一 二 三 四 五 六}

#打印日期头
def dispWeekName

	$weekdays.each { |weekName|
		print(weekName + "\t")
	}
	print("\n")
end

#日历类
class CalInfo
	attr_reader  :year, :month, :curDate, :first_day_week, :last_day
	
	def initialize(year, month)
		#年
		@year = year
		#月
		@month = month
		#指定年月的Time类实例
		cur_date = Date.new(year, month, 1)
		#表示指定月,当月最后一天的Date实例
		lastday_of_month_date = Date.new(year, month, -1)
		#指定月第一天是星期几
		@first_day_week = cur_date.wday
		#指定月最后日
		@last_day = lastday_of_month_date.mday
		
	end	
end

def dispCal(cal)
	(cal.first_day_week).times {
		print("\t")
	}	
	day_week = cal.first_day_week
	(1..(cal.last_day)).each {|day|		
		print(day.to_s + "\t")		
		day_week += 1
		if day_week % 7 == 0 then
			print("\n")
			day_week = 0 
		end
	}
end


cal = CalInfo.new(2013, 2);
dispWeekName()
dispCal(cal)

运行结果如下:

接下来,准备改成可以接受命令行参数的,这样就可以动态打印指定年月的日历了。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap