1. 程式人生 > >Java不使用calendar類和其餘的類 只調用Scanner類寫一個日曆

Java不使用calendar類和其餘的類 只調用Scanner類寫一個日曆

作業題目

java起步,小白一個,只是分享心得和加深印象

*********************************************************************************

作業要求 

構建無參的函式和有參的函式分別輸出每年的日曆

輸入

年份 和 該年第一天是星期幾的數字(我設定星期天為0)

輸出

該年全年的日曆

 程式碼如下,僅供參考:

package mycalendar;

import java.util.Scanner;

public class mycalendar{

    static int year;

    static

int fdayofyear;

    int[] fdayofmonth;

    int[] dayamount;

    /**

     * 主函式輸入年份以及呼叫無參有參建構函式

     * @param args

     */

    public static void main(String[] args){

       mycalendar calendar1= new mycalendar();

       Scanner n= new Scanner(System.in);

       System.out.println("\n\n請輸入您想要查詢的年份:

");

       year=n.nextInt();

       System.out.println("\n請輸入您所查詢年份第一天的星期:");

       fdayofyear=n.nextInt();

       mycalendar calendar2= new mycalendar(year,fdayofyear);

    }

    /**

     * 無參構造方法

     */

    public mycalendar(){

       year=2017;

       fdayofyear=0;

       this.dayamount=caculatemonthday(year

);

       this.fdayofmonth=fdayofeverymonth();

       for(int i=1;i<13;i++)    //迴圈輸出月曆,實現年曆的輸出

       {

           printamount(i);

       }

    }

    /**

     * 有參建構函式

     * @param year

     * @param fdayofyear

     */

    public mycalendar(int year,int fdayofyear){

       this.dayamount=caculatemonthday(year);

       this.fdayofmonth=fdayofeverymonth();

       for(int i=1;i<13;i++)    //迴圈輸出月曆,實現年曆的輸出

       {

           printamount(i);

       }

    }

    /**

     *  計算每個月的天數

     * @param year

     * @return

     */

    public int[] caculatemonthday(int year){

       int[] dayamount = new int[13];  //必須new以後才可以實現對全域性變數的修改

       int[] leapyear={0,31,29,31,30,31,30,31,31,30,31,30,31};

       int[] nleapyear={0,31,28,31,30,31,30,31,31,30,31,30,31};

       if(isleapyear(year))

           for(int i=0;i<13;i++)

                     dayamount[i]=leapyear[i];   //計算閏年每個月的天數

       else

           for(int i=0;i<13;i++)

           dayamount[i]=nleapyear[i];  //計算非閏年每個月的天數

       return dayamount;

    }

    /**

     * 計算每個月的天數和第一天的星期

     * @return

     */

    public int[] fdayofeverymonth(){

       int[] fdayofmonth=new int[13];  //與上同理

       fdayofmonth[1] = fdayofyear;

       for(int j=2;j<13;j++){

           fdayofmonth[j]=(fdayofmonth[j-1]+dayamount[j-1])%7;  //計算每個月第一天的星期

       }

       return fdayofmonth;

    }

    /**

     * 計算閏年

     * @param year

     * @return

     */

    public boolean isleapyear(int year){

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

           return true;

       else

           return false;

    }

    /**

     * 輸出月曆

     * @param month

     */

    public void printamount(int month){

       System.out.println("\n\t\t\t"+month+"");

       System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");

       for(int i=0;i<fdayofmonth[month];i++)

           System.out.print("\t");

       for(int j=1;j<=dayamount[month];j++){

           System.out.print(j+"\t");

           if((fdayofmonth[month]+j)%7==0)

              System.out.println("\n");

       }

    }

}


相關推薦

Java使用calendar其餘 調Scanner一個日曆

作業題目 java起步,小白一個,只是分享心得和加深印象 ********************************************************************************* 作業要求  構建無參的函式和有參的函式分別輸出每年的

javafor迴圈一個日曆

package sort; import java.util.Scanner; public class fuhuo1 { public static void main(String[] arg

java創建一個子對象是會調的構造方法會會創建父

進行 eight 實現 知識 創建 mod 不一定 調用構造方法 結構 1、子類在創建實例後,類初始化方法會調用父類的初始化方法(除了Java.lang.Object類,因為java.lang.Object類沒有父類),而這種調用會逐級追述,直到java.lang.Obj

java 抽象介面2--什麼時候介面什麼時候抽象

從生活的角度看 把程式設計對映會日常生活進行對照,那麼一個東西,抽象類表示它是什麼,介面表示它能做什麼。舉一個栗子,一個Person,他有眼睛、膚色,這些描述一個人的特徵可以定義在抽象類中,而一個人的行為如打籃球,所以這些可以定義在介面中。 另外

Java從入門到失業》第四章:物件(4.6):路徑

4.6類路徑 4.6.1什麼是類路徑        前面我們討論過包,知道位元組碼檔案最終都會被放到和包名相匹配的樹狀結構子目錄中。例如上一節的例子:     其實類還有一種存放方式,就是可以歸檔到一個jar檔案中,jar檔案其實就是把位元

對象序列化中 子構造函數的調問題

images png http 分享 com 函數 對象 情況 序列 第三種情況: 對象序列化中 子類和父類構造函數的調用問題

C#導入c++ dll報找到dll文件 masm32調c++

dll sca masm32 ++ 時也 類型 dumpbin exports 另一個   最近需要在C#下調用一個c++ dll庫,不管怎樣dllimport就是報錯找不到該dll文件,路徑、函數名稱、參數、dllimport參數逐個檢查確認無誤也無濟於事,無奈想用其他語

與派生的指針成員函數調原理

而且 font 重新定義 -s 繼承 轉型 center span enter 基類與派生類的指針和成員函數調用原理 1.如果以一個基礎類指針指向一個衍生類對象(派生類對象),那麽經由該指針只能訪問基礎類定義的函數(靜態聯翩) 2.如果以一個衍生類指針指向一個基礎類對象,必

java this 子調,父調已覆蓋的方法及屬性(又一次理解)

views args pop word per ews nds 如果 ext 之前一直以為 this關鍵字 是指調用者對象,但是這次才真正理解,this代表當前對象,但是指向調用者對象,其實就是多態的用法,如下所示:B 繼承了 A,在B 中調用A類的方法,在A 中用this

關於Java中子調方法

pub java return 調用方法 類的方法 類繼承 main str pack 當一個類繼承於另一個類,子類中沒有父類的方法時。用子類的對象調用方法時,會首先在子類中查找,如果子類中沒有改方法,再到父類中查找。當一個方法只在父類中定義時,調用該方法時會使用父類中的屬

Java web 開發中幾個高可復

eas rop prop type stat edi ror exc clu 1. JsonUtil   通過 jackson包提供的方法 實現一個字符串轉對象,對象轉字符串的類,使用場景,redis實現單點登陸 package com.mmall.util; im

java泛型型變量能調的方法

png ava bubuko image nds end 泛型類 public 方法 public class Person { } public class Student extends Person{ private String

javaFileIO輸入輸出流中隨機讀RandomAccessFile的講解

今天來複習一下IO流的api, 在java中用io流來進行檔案的輸出和輸出操作,那麼首先類講解一下什麼是輸入和輸出: 所有往記憶體中送資料都是輸入 所有從記憶體出資料都是輸出 能用java.io包中的api操作的輸入輸出: 記憶體–>外存(硬碟,光碟,U盤) 本地流輸出

Java主執行緒其餘執行緒的區別實踐(Main、Runnable、Thread)

在日常的開發中,很多一些開發中較常見的問題,還是需要去仔細研究一下,最重要的還是實踐。以小見大。 一、Java執行緒中。Main、Runnable和Thread。 相信在工作中,只要是有用到多執行緒非同步程式設計,最起碼都要和這三個打交道。 1、每個Java應用程式

javaScanner輸入陣列並列印

Scanner類位於java.util包下,程式前可加呼叫包語句,程式碼如下: import java.util.*; public class ArrayIO{ public static void main(String[] args){

java中小數的處理:高精度運算bigDecimal,精度保留方法,即舍入方式的指定

一、 計算機的小數計算一定範圍內精確,超過範圍只能取近似值: 計算機儲存的浮點數受儲存bit位數影響,只能保證一定範圍內精準,超過bit範圍的只能取近似值。 java中各型別的精度範圍參見:http://blog.csdn.net/longshenlmj/

抽象介面的區別 以及選擇抽象介面的應用場景

介面和抽象類有什麼區別 你選擇使用介面和抽象類的依據是什麼? 介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。 抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類(如果是類的話……),他們的抽象類是人。說

反射動態調方法

mes quotes obj aps tty 方法 snapshot handler hot //Type type = Type.GetType("Domain.Entitiy." + item.Name);//object handler = Activator.Cre

[Go] 子 調 的 屬性、方法

.com imp truct 輸出 入門 get receive pre 繼承 package main import ( "fmt" ) type A struct { Text string Name string } func (a

基於thrift的javapython分別作為客戶端服務端的調實現

Coding except arr pes com ssa utf-8 encoding 中文亂碼 前面已經實現了純java的thrift的實現。 現在實現實現一下python作為客戶端和服務端的thrift的調用 1.python作為客戶端,java作為服務端 java服