루비로 달력을 만들었어요.
7347 단어 Ruby
Ruby
에 달력을 표시하는 프로그램을 썼습니다.(날짜 표시 방법에 공을 들여 간소화했다)
루비의 초보자를 위한 프로그램 설계 질문(전체 10문)을 수집해 보았다(전편)
구체적으로 다음 두 개를 제작했다.(현재 연월을 초기값으로 설정)
require 'date'
def calendar_month(year: Date.today.year, month: Date.today.month)
firstday = Date.new(year, month, 1)
lastday = Date.new(year, month, -1)
first_wday = firstday.wday # 1日の曜日(0-6)
lastday_date = lastday.day
# 日付の配列を作成(一桁の場合は1マス空白を追加)
days = (1..lastday_date).map{ |n| n.to_s.rjust(2)}
# 1日の曜日に合わせて配列に空白を追加し,7つ区切りの配列に
days = Array.new(first_wday, ' ').push(days).flatten.each_slice(7).to_a
puts firstday.strftime("%B %Y").center(20)
puts %w[Su Mo Tu We Th Fr Sa].join(' ')
days.each do |week|
puts week.join(' ')
end
end
def calendar(year: Date.today.year)
puts '-' * 20
(1..12).each do |n|
calendar_month(year: year, month: n)
puts '-' * 20
end
end
calendar
올해 달력이 순조롭게 나타났다--------------------
January 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
--------------------
February 2019
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28
--------------------
March 2019
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
--------------------
April 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
--------------------
May 2019
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
--------------------
June 2019
Su Mo Tu We Th Fr Sa
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
--------------------
July 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
--------------------
August 2019
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
--------------------
September 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
--------------------
October 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
--------------------
November 2019
Su Mo Tu We Th Fr Sa
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
--------------------
December 2019
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
--------------------
Reference
이 문제에 관하여(루비로 달력을 만들었어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/take18k_tech/items/d49b63f0b00cb3aaf301텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)