26.1.6.2 数を減らす

累積日数を使ったプログラムを示します.累積を計算しておく変数の名前はpです.

class YearDay {
 public static void main(String argv[ ]) {
     int n=210; int m, d;
     int p=0;
     if (n <=p+31) {m=1; d=n-p;} else {p=p+31;
     if (n <=p+28) {m=2; d=n-p;} else {p=p+28;
     if (n <=p+31) {m=3; d=n-p;} else {p=p+31;
     if (n <=p+30) {m=4; d=n-p;} else {p=p+30;
     if (n <=p+31) {m=5; d=n-p;} else {p=p+31;
     if (n <=p+30) {m=6; d=n-p;} else {p=p+30;
     if (n <=p+31) {m=7; d=n-p;} else {p=p+31;
     if (n <=p+31) {m=8; d=n-p;} else {p=p+31;
     if (n <=p+30) {m=9; d=n-p;} else {p=p+30;
     if (n <=p+31) {m=10; d=n-p;} else {p=p+31;
     if (n <=p+30) {m=11; d=n-p;} else {p=p+30;
     if (n <=p+31) {m=12; d=n-p;}
         else{m=0; d=0;} } } } } } } } } } } }
     System.out.println(n + "=" + m + "月" + d + "日");
 }
}

fileYearDay.java (utf-8)

まだまだいやらしい格好ですね.月ごとに日数が微妙に違うのが諸悪の根源で,これが解決できれば繰返しの形にできそうです.