diff options
Diffstat (limited to 'trunk/sample/biorhythm.rb')
-rw-r--r-- | trunk/sample/biorhythm.rb | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/trunk/sample/biorhythm.rb b/trunk/sample/biorhythm.rb deleted file mode 100644 index 6465daa29f..0000000000 --- a/trunk/sample/biorhythm.rb +++ /dev/null @@ -1,124 +0,0 @@ -#!/usr/local/bin/ruby -# -# biorhythm.rb - -# $Release Version: $ -# $Revision$ -# by Yasuo OHBA(STAFS Development Room) -# -# -- -# -# -# - -# probably based on: -# -# Newsgroups: comp.sources.misc,de.comp.sources.os9 -# From: fkk@stasys.sta.sub.org (Frank Kaefer) -# Subject: v41i126: br - Biorhythm v3.0, Part01/01 -# Message-ID: <1994Feb1.070616.15982@sparky.sterling.com> -# Sender: kent@sparky.sterling.com (Kent Landfield) -# Organization: Sterling Software -# Date: Tue, 1 Feb 1994 07:06:16 GMT -# -# Posting-number: Volume 41, Issue 126 -# Archive-name: br/part01 -# Environment: basic, dos, os9 - -include Math -require "date.rb" -require "optparse" -require "optparse/date" - -def printHeader(y, m, d, p, w) - print "\n>>> Biorhythm <<<\n" - printf "The birthday %04d.%02d.%02d is a %s\n", y, m, d, w - printf "Age in days: [%d]\n\n", p -end - -def getPosition(z) - pi = Math::PI - z = Integer(z) - phys = (50.0 * (1.0 + sin((z / 23.0 - (z / 23)) * 360.0 * pi / 180.0))).to_i - emot = (50.0 * (1.0 + sin((z / 28.0 - (z / 28)) * 360.0 * pi / 180.0))).to_i - geist =(50.0 * (1.0 + sin((z / 33.0 - (z / 33)) * 360.0 * pi / 180.0))).to_i - return phys, emot, geist -end - -def prompt(msg) - $stderr.print msg - return gets.chomp -end - -# -# main program -# -options = { - :graph => true, - :date => Date.today, - :days => 9, -} -ARGV.options do |opts| - opts.on("-b", "--birthday=DATE", Date, "specify your birthday"){|v| - options[:birthday] = v - } - opts.on("--date=DATE", Date, "specify date to show"){|v| - options[:date] = v - } - opts.on("-g", "--show-graph", TrueClass, "show graph (default)"){|v| - options[:graph] = v - } - opts.on("-v", "--show-values", TrueClass, "show values"){|v| - options[:graph] = !v - } - opts.on("--days=DAYS", Integer, "graph range (only in effect for graph)"){|v| - options[:days] = v - 1 - } - opts.on_tail("-h", "--help", "show this message"){puts opts; exit} - begin - opts.parse! - rescue => ex - puts "Error: #{ex.message}" - puts opts - exit - end -end - -bd = options[:birthday] || Date.parse(prompt("Your birthday (YYYYMMDD): ")) -dd = options[:date] || Date.today -ausgabeart = options[:graph] ? "g" : "v" -display_period = options[:days] - -if ausgabeart == "v" - printHeader(bd.year, bd.month, bd.day, dd - bd, bd.strftime("%a")) - print "\n" - - phys, emot, geist = getPosition(dd - bd) - printf "Biorhythm: %04d.%02d.%02d\n", dd.year, dd.month, dd.day - printf "Physical: %d%%\n", phys - printf "Emotional: %d%%\n", emot - printf "Mental: %d%%\n", geist - print "\n" -else - printHeader(bd.year, bd.month, bd.day, dd - bd, bd.strftime("%a")) - print " P=physical, E=emotional, M=mental\n" - print " -------------------------+-------------------------\n" - print " Bad Condition | Good Condition\n" - print " -------------------------+-------------------------\n" - - (dd - bd).step(dd - bd + display_period) do |z| - phys, emot, geist = getPosition(z) - - printf "%04d.%02d.%02d : ", dd.year, dd.month, dd.day - p = (phys / 2.0 + 0.5).to_i - e = (emot / 2.0 + 0.5).to_i - g = (geist / 2.0 + 0.5).to_i - graph = "." * 51 - graph[25] = ?| - graph[p] = ?P - graph[e] = ?E - graph[g] = ?M - print graph, "\n" - dd = dd + 1 - end - print " -------------------------+-------------------------\n\n" -end |