BSD 1 development
authorJeff Schriebman <jeff@ucbvax.Berkeley.EDU>
Sun, 27 Nov 1977 02:13:57 +0000 (18:13 -0800)
committerJeff Schriebman <jeff@ucbvax.Berkeley.EDU>
Sun, 27 Nov 1977 02:13:57 +0000 (18:13 -0800)
Work on file s6/biorhythm.c

Synthesized-from: 1bsd

s6/biorhythm.c [new file with mode: 0644]

diff --git a/s6/biorhythm.c b/s6/biorhythm.c
new file mode 100644 (file)
index 0000000..0a5f76f
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+biorhythm predictions
+       biorhythm mmddyy [y1] [y2]
+       jeff schriebman         3-75
+*/
+
+extern fout;
+
+char *bptr;
+
+int month,day,year,nday;
+
+char *mon[] {
+       "jan",
+       "feb",
+       "mar",
+       "apr",
+       "may",
+       "jun",
+       "jul",
+       "aug",
+       "sep",
+       "oct",
+       "nov",
+       "dec"
+};
+
+int dy[] {
+       31,28,31,30,31,30,
+       31,31,30,31,30,31
+};
+
+main(argc,argv)
+char **argv;
+{
+       register char ph,em,in;
+       int i,ystart,yfin;
+
+       if (argc < 2) {
+               printf("bior mmddyy [yy] [yy]\n");
+               exit();
+       }
+       fout = dup(1);
+       printf("Biorhythm transition predictions\n\n");
+       printf("ph em in  date\n");
+       nday = -1;
+       bptr = *++argv;
+       month = gettwo();
+       day = gettwo();
+       day =- 1;
+       year = gettwo();
+       year =+ 1900;
+       if (*bptr!='\0') {
+               printf("\n\nIllegal input data. Please enter ");
+               printf("mmddyy of birth\n");
+               exit();
+       }
+       ystart = 0;
+       if (argc>=3) {
+               bptr = *++argv;
+               ystart = gettwo();
+               ystart =+ 1900;
+       }
+       yfin = 30000;
+       if (argc>=4) {
+               bptr = *++argv;
+               yfin = gettwo();
+               yfin =+ 1900;
+       }
+       for (i=year;year<i+100;) {
+               update();
+               if (year<ystart)
+                       continue;
+               if (year>yfin)
+                       exit();
+               ph = ' ';
+               em = ' ';
+               in = ' ';
+               if(lrem(0,nday,23)==11)   ph = '-';
+               if(lrem(0,nday,23)==0)   ph = '+';
+               if(lrem(0,nday,28)==14)   em = '-';
+               if(lrem(0,nday,28)==0)   em = '+';
+               if(lrem(0,nday,33)==16)   in = '-';
+               if(lrem(0,nday,33)==0)   in = '+';
+               if (ph==' ' && em==' ' && in==' ')
+                       continue;
+printf("%c  %c  %c  %s %2d %d\n",ph,em,in,mon[month-1],day,year);
+       }
+       flush();
+}
+
+update()
+{
+       nday =+ 1;
+       day =+ 1;
+       if(day>dy[month-1]) {
+               if(month==2 && lrem(0,year,4)==0 && day==29)
+                       return;
+               day = 1;
+               month =+ 1;
+               if (month>12) {
+                       month = 1;
+                       year =+ 1;
+               }
+       }
+}
+
+gettwo()
+{
+       register int num;
+
+       num = *bptr++ - '0';
+       num = num*10 + *bptr++ - '0';
+       return(num);
+}