LoginSignup
7
6

More than 5 years have passed since last update.

プログラミング初心者のメモ書き

Last updated at Posted at 2016-02-17

はじめに

普段、Evernoteにその日走ったランニングの距離や、気になったことを日記みたいな形で書いています。1ページ1ヶ月として書いているので、そのためのフォーマットを作成したいと思います。

練習

diaryformat.rb
def diary_format(first_day, last_day)
  day_numbers = [*(first_day..last_day)].reverse
  weeks = ['Mon.', 'Tue.', 'Wed.', 'Thr.', 'Fri.', 'Sat.', 'Sun.']
  day_numbers.each{|day_number|
    if day_number % 7 == 0
      puts '---------------'
      puts "2016/02/#{day_number} #{weeks[6]}"
      puts '- Wake Up Time : 00:00'
      puts '- Bedtime : 00:00'
      puts '- Running : 00km'
      puts '- Body Weight : 00kg'
      puts '- Programming : '
      puts '- Study of English : '
      puts '- Diary : '
      puts "\n\n"
    elsif day_number % 7 == 1
      puts '---------------'
      puts "2016/02/#{day_number} #{weeks[0]}"
      puts '- Wake Up Time : 00:00'
      puts '- Bedtime : 00:00'
      puts '- Running : 00km'
      puts '- Body Weight : 00kg'
      puts '- Programming : '
      puts '- Study of English : '
      puts '- Diary : '
      puts "\n\n"
    elsif day_number % 7 == 2
      puts '---------------'
      puts "2016/02/#{day_number} #{weeks[1]}"
      puts '- Wake Up Time : 00:00'
      puts '- Bedtime : 00:00'
      puts '- Running : 00km'
      puts '- Body Weight : 00kg'
      puts '- Programming : '
      puts '- Study of English : '
      puts '- Diary : '
      puts "\n\n"
    elsif day_number % 7 == 3
      puts '---------------'
      puts "2016/02/#{day_number} #{weeks[2]}"
      puts '- Wake Up Time : 00:00'
      puts '- Bedtime : 00:00'
      puts '- Running : 00km'
      puts '- Body Weight : 00kg'
      puts '- Programming : '
      puts '- Study of English : '
      puts '- Diary : '
      puts "\n\n"
    elsif day_number % 7 == 4
      puts '---------------'
      puts "2016/02/#{day_number} #{weeks[3]}"
      puts '- Wake Up Time : 00:00'
      puts '- Bedtime : 00:00'
      puts '- Running : 00km'
      puts '- Body Weight : 00kg'
      puts '- Programming : '
      puts '- Study of English : '
      puts '- Diary : '
      puts "\n\n"
    elsif day_number % 7 == 5
      puts '---------------'
      puts "2016/02/#{day_number} #{weeks[4]}"
      puts '- Wake Up Time : 00:00'
      puts '- Bedtime : 00:00'
      puts '- Running : 00km'
      puts '- Body Weight : 00kg'
      puts '- Programming : '
      puts '- Study of English : '
      puts '- Diary : '
      puts "\n\n"
    elsif day_number % 7 == 6
      puts '---------------'
      puts "2016/02/#{day_number} #{weeks[5]}"
      puts '- Wake Up Time : 00:00'
      puts '- Bedtime : 00:00'
      puts '- Running : 00km'
      puts '- Body Weight : 00kg'
      puts '- Programming : '
      puts '- Study of English : '
      puts '- Diary : '
      puts "\n\n"
    end
  }
end

day_number_week(1,29)

改善点(よく分からない)

  • 月が変わると曜日がズレてしまう。(現在は2月用)
  • 重複している点を除く。

追記(2016-02-18)

コメントを参考に改善してみました。Dateクラスを使えば良かったのですね...。
Date#wdayはとても便利ですね。その日の曜日を0-6までの値で返してくれるもので、例えば日曜日なら0、月曜日なら1を返してくれます。そして求めたい日の曜日は、まず曜日の配列を日曜日からつくり、その配列をwdayメソッドで取得した値(0-6)で参照することで、取得できます。勉強になりました。

diaryformat2.rb
require "date"

youbi = %w(Sun. Mon. Tue. Wed. Thr. Fri. Sat.)

start_date = Date.parse("2016-02-01")
end_date = Date.parse("2016-02-29")

(start_date..end_date).each do |date|
  puts <<-EOT
  ---------------
  #{date.strftime("%Y/%m/%d")} #{youbi[date.wday]}
  - Wake Up Time : 00:00
  - Bed Time : 00:00
  - Running : 00km
  - Body Weight : 00kg
  - Programming :
  - Study of English :
  - Diary :
  \n
  \n
  EOT
end
7
6
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6