public class Calendar {
int year=0;
String[]R=new String[3];
int[]DR=new int[3];
int[]DE=new int[3];
int[]T={30,31};
String[]month={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
int[]date={31,28,31,30,31,30,31,31,30,31,30,31};
int[]delay=new int[13];
Day d;
MonthDay m;
Delay1 de;
Arrays a;
Input i;
public void start(){
d=new Day();
m=new MonthDay();
de=new Delay1();
a=new Arrays();
i=new Input();
System.out.print("input year==>");
i.Istart();
year=i.year;
d.Dstart();
m.MDstart();
System.out.println("\t\t\t\t\t"+"[西元:"+year+"]");
System.out.println("");
while(true){
de.Destart();
a.Astart();
if(R[2]=="十二月"){
break;
}
}
}
public class Input{
int year=0;
public void Istart(){
java.util.Scanner input;
input=new java.util.Scanner(System.in);
year=input.nextInt();
}
}
public class Day{
int sum=0;
public void Dstart(){
sum=(year-1)/4+(year-1)/400-(year-1)/100+year;
}
}
public class MonthDay{
int sum=0,sum1=0;
public void MDstart(){
delay[0]=d.sum%7;
for(int i=0;i<12;i++){
if(year%4==0&&year%100!=0||year%400==0){
date[1]=29;
}else{
date[1]=28;
}
sum+=date[i];
delay[i+1]=(sum+d.sum)%7;
}
}
}
public class Delay1{
public void Destart(){
for(int i=0;i<3;i++){
System.out.printf("<-----------"+month[i]+"------------>");
}
System.out.println("");
for(int i=0;i<3;i++){
System.out.print("");
}
System.out.println("");
for(int j=0;j<3;j++){
for(int i=0;i System.out.printf(" ");
}
for(int n=1;n<=7-delay[j];n++){
System.out.printf("%4d",n);
}
}
System.out.println("");
for(int j=0;j<3;j++){
for(int i=8-delay[j];i<8-delay[j]+7;i++){
System.out.printf("%4d",i);
}
}
System.out.println(" ");
for(int j=0;j<3;j++){
for(int i=15-delay[j];i<15-delay[j]+7;i++){
System.out.printf("%4d",i);
}
}
System.out.println("");
for(int j=0;j<3;j++){
for(int i=22-delay[j];i<22-delay[j]+7;i++){
System.out.printf("%4d",i);
}
}
System.out.println(" ");
for(int j=0;j<3;j++){
if(delay[j]==6){
if(date[j]==30){
date[j]=date[j]-1;
}else if(date[j]==31){
date[j]=date[j]-2;
}
}else if(delay[j]==5){
if(date[j]==30){
date[j]=date[j];
}else if(date[j]==31){
date[j]=date[j]-1;
}
}
int i=29-delay[j];
while(i<=date[j]){
System.out.printf("%4d",i);
i++;
}
if(i>31){
for(int m=0;m<=5-(date[j]-(29-delay[j]));m++){
System.out.printf(" ");
}
}else if(i>30){
for(int m=0;m<=5-(date[j]-(29-delay[j]));m++){
System.out.printf(" ");
}
}else if(i>=28||i>=29){
for(int m=0;m<=5-(date[j]-(29-delay[j]));m++){
System.out.printf(" ");
}
}
}
System.out.println("");
for(int i=0;i<3;i++){
System.out.print(" ");
if(date[i]==31&&delay[i]==6){
for(int a=0;a<7*i;a++){
System.out.print(" ");
}
for(int j=0;j<2;j++){
System.out.print(T[j]);
}
}else if(date[i]==29&&delay[i]==6){
for(int a=0;a<7*i;a++){
System.out.print(" ");
}
for(int j=0;j<2;j++){
System.out.print(T[j]+" ");
}
}else if(date[i]==30&&delay[i]==5){
for(int a=0;a<7*i;a++){
System.out.printf(" ");
}
System.out.print(T[1]);
}
}
System.out.println("");
}
}
public class Arrays{
public void Astart(){
for(int i=0;i<3;i++){
R[i]=month[i];
month[i]=month[i+3];
month[i+3]=month[i+6];
month[i+6]=month[i+9];
month[i+9]=R[i];
}
for(int i=0;i<3;i++){
DR[i]=date[i];
date[i]=date[i+3];
date[i+3]=date[i+6];
date[i+6]=date[i+9];
date[i+9]=DR[i];
}
for(int i=0;i<3;i++){
DE[i]=delay[i];
delay[i]=delay[i+3];
delay[i+3]=delay[i+6];
delay[i+6]=delay[i+9];
delay[i+9]=DE[i];
}
}
}
public static void main(String args[]){
Calendar ca=new Calendar();
ca.start();
}
}
Friday, October 23, 2009
萬年曆(一季三個月)
Subscribe to:
Posts (Atom)