java編程實現日曆

package com.beiwo.other;
/*
* 需求:輸入一個年份和月份 ,顯示當前月日狀況 ,星期數要對應準確
* 1.1900年1月1號開始
* 2.星期 : 直接用總天數對7求餘數 31 28 59 / 7 = 5
* 3.以\t來個開
*/
public class Demo4 {工具

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

Demo4 demo = new Demo4();blog

//輸入你要查詢的年月get

demo.show(1900,3);it

}

//定義一個工具方法:判斷平年仍是閏年
public boolean isLeapYear(int year){

if(year % 400 == 0 || (year % 4==0 && year % 100 != 0)){

return true;
}

return false;
}

//計算輸入年份下,月份的總天數 1900

public int getTotalDateFrom(int year , int month){

//1.定年份的總天數
int totalDate = 0;//1900到你輸入的年份的總天數 2016 1900 - 1903 = 3
for(int i= 1900 ; i < year ;i++){

if(isLeapYear(i)){ // 閏年

totalDate += 366;
}else {

totalDate += 365;
}
}

//2.計算月份的天數
for(int i = 1 ; i< month ;i++){

totalDate += getDayOfMonth(year, i);
}

return totalDate;

}



public int getDayOfMonth(int year , int month){

switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:

return 31;class

case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
if(isLeapYear(year)){

return 29;
}else {

return 28;
}
default:
return 30;
}
}

public int printSpace(int year , int month){

return getTotalDateFrom(year, month) % 7;
}

public void print(int year , int month){

int countSpac = printSpace(year, month) + 1; // 空格的個數
int count = 0; //定義一個計數
for(int i = 1; i<=countSpac; i++){
count++;
System.out.print("\t");
}

//2.打印日期
for(int i = 1 ; i<=getDayOfMonth(year, month);i++){

if(count % 7 == 0){

System.out.println();
}
count++;
System.out.print(i+"\t");

}

}

public void show(int year , int month){

System.out.println("******************"+year+"****"+month+"***************");
System.out.println("======================================================");
System.out.println("日\t一\t二\t三\t四\t五\t六");
System.out.println("======================================================");
print(year, month);
System.out.println();
}
方法

}im

//效果預覽demo

//查詢

相關文章
相關標籤/搜索