階段1:1900年1月1日-2015年 相隔多少天(瑞年366,平年365)
~~~
public class Year {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
System.out.println("1900年1月1日-2015年 相隔天"+sum+"天");//42368
}
}
~~~
階段2:1900年1月1日-2016年5月7日 相隔多少天(瑞年366,平年365)
~~~
public class Year2 {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2015;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<=4;m++){
if(m==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=7;
System.out.println(sum+"天");//42496
}
}
~~~
階段3:(每月第一天為星期幾) 1900年1月1日--2012年9月1日到現在一共多少天,對7進行取模,結果就為星期幾
~~~
public class Year3 {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2011;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<=8;m++){
if(m==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=1;
System.out.println("星期"+(sum%7));//星期6
}
}
~~~
階段4:輸出2012年9月第一天的格式
~~~
public class Year4 {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2011;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<=8;m++){
if(m==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=1;
int wekday=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
//確定每月第一天前面的空格
for(int i=1;i<=wekday;i++){
System.out.print("\t");
}
System.out.print("1");
}
~~~

階段5:輸出2012年9月的格式
~~~
public class Year5 {
public static void main(String[] args) {
int sum=0;
for(int year=1900;year<=2011;year++){
if(year%4==0&&year%100!=0||year%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<=8;m++){
if(m==2){
if(2016%4==0&&2016%100!=0||2016%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=1;
int wekday=sum%7;//星期幾
System.out.println("日\t一\t二\t三\t四\t五\t六");
//確定每月第一天前面的空格
for(int i=1;i<=wekday;i++){
System.out.print("\t");
}
for(int i=1;i<=30;i++){//小缺陷,都為30天了
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}
~~~

階段6:日歷完成
~~~
import java.util.*;
public class Year6 {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
System.out.println("請輸入年份:");
int year=in.nextInt();
System.out.println("請輸入月份:");
int month=in.nextInt();
int sum=0;
for(int y=1900;y<year;y++){
if(y%4==0&&y%100!=0||y%400==0){
sum+=366;
}else{
sum+=365;
}
}
for(int m=1;m<month;m++){
if(m==2){
if(year%4==0&&year%100!=0||year%400==0){
sum+=29;
}else{
sum+=28;
}
}else if(m==4||m==6||m==9||m==11){
sum+=30;
}else{
sum+=31;
}
}
sum+=1;
int wekday=sum%7;//星期幾
System.out.println("日\t一\t二\t三\t四\t五\t六");
//確定每月第一天前面的空格
for(int i=1;i<=wekday;i++){
System.out.print("\t");
}
for(int i=1;i<=30;i++){//小缺陷,都為30天了
if(sum%7==6){
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}
~~~

- 書寫心得
- 1.初識Java
- 2.變量、數據類型和運算符
- 實例:數據的輸入
- 實例:變量互換
- 3.條件選擇結構
- 案例:判斷年份是否為閏年
- 案例:生成隨機數
- 實例:剪刀石頭布
- 4.循環結構
- 實例:猜數字游戲
- Myeclipse
- 實例:九九乘法表
- 實例:日歷
- 5.數組
- JVM內存分析
- 鍵盤錄入賦值數組
- 數組的length屬性
- 數組的最大值(打擂臺)
- 數組的排序
- 數組復制算法
- 數組的查找算法(搜索)
- 數組的插入算法
- 數組的冒泡算法
- 數組的選擇排序
- 多維數組
- 實例:學生成績管理系統
- 類和對象
- 概念
- 內存分析
- 創建類和對象
- 面向對象與內存分析
- 有參數無(有)返回值的調用
- 成員變量
- return和多參方法
- toString方法
- this關鍵字
- 封裝
- 方法的重載
- 構造方法
- 階段性總結
- 實例:學生管理系統
- Test.java
- Student.java
- Admin.java
- 構造代碼塊及構造函數之間的調用
- main方法和靜態應用工具類及classpath
- static關鍵字
- 文檔注釋和靜態代碼塊及單例模式
- 繼承
- 多態
- 匿名對象和toString()和equals及final
- 抽象類和模板方法設計模式
- 接口
- 包機制和包與包之間的訪問權限和jar包