summaryrefslogtreecommitdiff
path: root/sample/biorhythm.rb
diff options
context:
space:
mode:
authorYukihiro Matsumoto <matz@ruby-lang.org>1994-12-08 14:17:29 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2019-08-17 22:09:30 +0900
commit00e36aa09f54925c2f9c30524b48f4f54a9adb23 (patch)
tree57bf15576109b53406796c66b29d5e11d9fd99c0 /sample/biorhythm.rb
parent4dfd93c72a9a221c5575c5888483f2fb55c82117 (diff)
version 0.60v0_60
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.60.tar.gz Thu Dec 8 14:17:29 1994 Yukihiro Matsumoto (matz@ix-02) * 0.60 released - alpha test baseline.
Diffstat (limited to 'sample/biorhythm.rb')
-rw-r--r--sample/biorhythm.rb201
1 files changed, 0 insertions, 201 deletions
diff --git a/sample/biorhythm.rb b/sample/biorhythm.rb
deleted file mode 100644
index eb14ca7365..0000000000
--- a/sample/biorhythm.rb
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/mp/free/bin/ruby
-#
-# biorhythm.rb -
-# $Release Version: $
-# $Revision: 1.6 $
-# $Date: 1994/02/24 10:23:34 $
-# by Yasuo OHBA(STAFS Development Room)
-#
-# --
-#
-#
-#
-
-$RCS_ID="$Header: /var/ohba/RCS/biorhythm.rb,v 1.6 1994/02/24 10:23:34 ohba Exp ohba $"
-
-include Math
-load("parsearg.rb")
-
-$wochentag = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]
-monatstag1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
-monatstag2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
-
-def usage()
- print("Usage:\n")
- print("biorhythm.rb [options]\n")
- print(" options...\n")
- print(" -D YYYYMMDD(birthday) : すべて default 値を使う. \n")
- print(" --sdate | --date YYYYMMDD : system date もしくは指定した日付を使う.\n")
- print(" --birthday YYYYMMDD : 誕生日の指定をする. \n")
- print(" -v | -g : Values or Graph の指定. \n")
- print(" --days DAYS : 期間の指定をする(Graph の時のみ有効). \n")
- print(" --help : help\n")
-end
-$USAGE = 'usage'
-
-def leapyear(y)
- ta = 0
- if ((y % 4.0) == 0); ta = 1; end
- if ((y % 100.0) == 0); ta = 0; end
- if ((y % 400.0) == 0); ta = 1; end
- return ta
-end
-
-def bcalc(tt, m, j)
- ta = 0
- if (m <= 2)
- ta = (m - 1) * 31
- else
- ta = leapyear(j)
- ta = ta + ((306 * m - 324) / 10.0).to_i
- end
- ta = ta + (j - 1) * 365 + ((j - 1) / 4.0).to_i
- ta = ta - ((j - 1) / 100) + ((j - 1) / 400.0).to_i
- ta = ta + tt
- return ta
-end
-
-def printHeader(tg, mg, jg, gtag, tage)
- print("\n")
- print(" Biorhythm\n")
- print(" =========\n")
- print("\n")
- printf("The birthday %04d.%02d.%02d is a %s\n", jg, mg, tg, $wochentag[gtag])
- printf("Age in days: [%d]\n", tage)
-end
-
-def getPosition(z)
- pi = 3.14159265
- $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
-end
-
-#
-# main program
-#
-parseArgs(0, nil, "vg", "D:", "sdate", "date:", "birthday:", "days:")
-
-printf($stderr, "\n")
-printf($stderr, "Biorhythm (c) 1987-1994 V3.0\n")
-printf($stderr, "\n")
-if ($OPT_D)
- dtmp = Time.now.strftime("%Y%m%d")
- jh = dtmp[0,4].to_i
- mh = dtmp[4,2].to_i
- th = dtmp[6,2].to_i
- dtmp = $OPT_D
- jg = dtmp[0,4].to_i
- mg = dtmp[4,2].to_i
- tg = dtmp[6,2].to_i
- gtag = bcalc(tg, mg, jg) % 7
- ausgabeart = "g"
-else
- if ($OPT_birthday)
- dtmp = $OPT_birthday
- else
- printf($stderr, "Birthday (YYYYMMDD) : ")
- dtmp = $stdin.gets.chop
- end
- if (dtmp.length != 8)
- printf($stderr, "BAD Input Birthday!!\n")
- exit()
- end
- jg = dtmp[0,4].to_i
- mg = dtmp[4,2].to_i
- tg = dtmp[6,2].to_i
-
- gtag = bcalc(tg, mg, jg) % 7
-
- if ($OPT_sdate)
- dtmp = Time.now.strftime("%Y%m%d")
- elsif ($OPT_date)
- dtmp = $OPT_date
- else
- printf($stderr, "Date [<RETURN> for Systemdate] (YYYYMMDD) : ")
- dtmp = $stdin.gets.chop
- end
- if (dtmp.length != 8)
- dtmp = Time.now.strftime("%Y%m%d")
- end
- jh = dtmp[0,4].to_i
- mh = dtmp[4,2].to_i
- th = dtmp[6,2].to_i
-
- if ($OPT_v)
- ausgabeart = "v"
- elsif ($OPT_g)
- ausgabeart = "g"
- else
- printf($stderr, "Values for today or Graph (v/g) [default g] : ")
- ausgabeart = $stdin.gets.chop
- end
-end
-if (ausgabeart == "v")
- tag = bcalc(tg, mg, jg)
- tah = bcalc(th, mh, jh)
- tage = tah - tag
- printHeader(tg, mg, jg, gtag, tage)
- print("\n")
-
- getPosition(tage)
- printf("Biorhythm: %04d.%02d.%02d\n", jh, mh, th)
- printf("Physical: %d%%\n", $phys)
- printf("Emotional: %d%%\n", $emot)
- printf("Mental: %d%%\n", $geist)
- print("\n")
-else
- if ($OPT_days)
- ktage = $OPT_days.to_i
- else
- if ($OPT_D)
- ktage = 9
- else
- printf($stderr, "Graph for how many days [default 10] : ")
- ktage = $stdin.gets.chop
- if (ktage == "")
- ktage = 9
- else
- ktage = ktage.to_i - 1
- end
- end
- end
- tag = bcalc(tg, mg, jg)
- tah = bcalc(th, mh, jh)
- tage = tah - tag
- printHeader(tg, mg, jg, gtag, tage)
- print(" P=physical, E=emotional, M=mental\n")
- print(" -------------------------+-------------------------\n")
- print(" Bad Condition | Good Condition\n")
- print(" -------------------------+-------------------------\n")
-
- for z in tage..(tage + ktage)
- getPosition(z)
-
- printf("%04d.%02d.%02d : ", jh, mh, th)
- 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")
- th = th + 1
- if (leapyear(jh) == 0)
- $MONATSTAG = monatstag1
- else
- $MONATSTAG = monatstag2
- end
- if (th > $MONATSTAG[mh - 1])
- mh = mh + 1
- th = 1
- end
- if (mh > 12)
- jh = jh + 1
- mh = 1
- end
- end
- print(" -------------------------+-------------------------\n\n")
-end