-3

私は学校で2000年をJavaで解決するプロジェクトを持っています。割り当ての説明は次のとおりです。

次の Date オブジェクトを作成します: 属性: 1501 年 1 月 1 日 (このプロジェクトのエポック日付) からの日数を表すユリウス日 - これは、関連付けられたアクセサー メソッドとミューテーター メソッドを持つクラスのプライベート メンバー変数である必要があります。定数: 各月に適した定数 エポック日付メソッドの各コンポーネントに適した定数: 指定された年、月、日をユリウス日に変換する Date(long year, long month, long day)。メソッド: 年、月、日をプロジェクトのエポック日からの日数に変換するメソッド。メソッド: 特定の年がうるう年かどうかを判断するメソッド メソッド: 特定の年の日数を返すメソッド。条件演算子 (? :) メソッドを使用して、現在の単純な if ステートメントを単一のステートメントに置き換えます。特定の年の特定の月の日数を返すメソッド。メソッドは、適切な定数を使用して switch ステートメントを実装する必要があります。メソッド: クラスで開発された他のメソッドもおそらく含まれているはずです。メソッド: returnYear() ユリウス日付値の年コンポーネントを決定するメソッド メソッド: returnMonth() ユリウス日付値の月コンポーネントを決定するメソッド メソッド: returnDay() ユリウス日付の日のコンポーネントを決定するメソッドvalue メソッド: returnMonthName() 指定された月の名前を返すメソッド ( month = JAN の場合は "January" を返す (switch ステートメントを使用)) メソッド: returnDate() monthName 日、年の形式で日付を返すメソッドクラス: 2 つのクエリ メソッドを含むユーティリティ。メソッドは、適切な定数を使用して switch ステートメントを実装する必要があります。メソッド: クラスで開発された他のメソッドもおそらく含まれているはずです。メソッド: returnYear() ユリウス日付値の年コンポーネントを決定するメソッド メソッド: returnMonth() ユリウス日付値の月コンポーネントを決定するメソッド メソッド: returnDay() ユリウス日付の日のコンポーネントを決定するメソッドvalue メソッド: returnMonthName() 指定された月の名前を返すメソッド ( month = JAN の場合は "January" を返す (switch ステートメントを使用)) メソッド: returnDate() monthName 日、年の形式で日付を返すメソッドクラス: 2 つのクエリ メソッドを含むユーティリティ。メソッドは、適切な定数を使用して switch ステートメントを実装する必要があります。メソッド: クラスで開発された他のメソッドもおそらく含まれているはずです。メソッド: returnYear() ユリウス日付値の年コンポーネントを決定するメソッド メソッド: returnMonth() ユリウス日付値の月コンポーネントを決定するメソッド メソッド: returnDay() ユリウス日付の日のコンポーネントを決定するメソッドvalue メソッド: returnMonthName() 指定された月の名前を返すメソッド ( month = JAN の場合は "January" を返す (switch ステートメントを使用)) メソッド: returnDate() monthName 日、年の形式で日付を返すメソッドクラス: 2 つのクエリ メソッドを含むユーティリティ。

そして、ここに私がこれまでに持ってきたコードがあります..スイッチに何か問題があるため、コンパイルされていません!

import java.util.Scanner;

class Date
{

    public final static long EPOCHYEAR = 1501;
    private long julianDate;

    Date(long year, long month, long day)
    {

        julianDate = returnTotalJulianDay(year, month, day);
        System.out.println("Days is " + julianDate);
    }

    boolean isLeapYear(long year)
    {
        boolean answer;

        if(year % 4 == 0 && (year % 4 == 0 || year % 100 != 0))
        {
            answer = true;
        }
        else
        {
            answer = false;
        }

        return answer;
    }

    long returnDaysInMonth(long year, long month)
    {

        if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
        {
            return 31;
        }
        else if(month == 4 || month == 6 || month == 9 || month == 11)
        {
            return 30;
        }
        else if(isLeapYear(year))
        {
            return 29;
        }
        else
        {
            return 28;
        }
    }

    long returnJulianDate(long year, long month, long day)
    {
        long julianDate;
        long monthCounter;

        julianDate = 0;
        monthCounter = 1;

        while(monthCounter < month)
        {

            julianDate += returnDaysInMonth(year, monthCounter);

            monthCounter += 1;

        }

        julianDate += day;

        return julianDate;
    }

    long returnTotalJulianDay(long year, long month, long day)
    {
        long totalJulianDay = 0;
        long yearCounter = 1;

        while(yearCounter < year)
        {

            totalJulianDay += returnJulianDate(year, month, yearCounter);

            yearCounter += 1;

        }

        return totalJulianDay;
    }

    long returnDaysInYear(long year)
    {
        final long DAYSINYEAR = 365;

        if(isLeapYear(year))
        {
            return 366;
        }
        else
        {
            return DAYSINYEAR;
        }
    }

    long returnJulianEpochDays(long year, long month, long day)
    {

        long yearCounter = EPOCHYEAR;
        long total = 0;

        while(yearCounter < year)
        {

            total += returnDaysInYear(yearCounter);

            yearCounter += 1;
        }

        total += returnJulianDate(year, month, day);

        return total;
    }

    long returnYear()
    {
        long dayCounter = 0;
        long yearCounter = EPOCHYEAR;

        for(dayCounter = this.julianDate; dayCounter > returnDaysInYear(yearCounter); yearCounter++)
        {
            dayCounter -= returnDaysInYear(yearCounter);
        }

        return yearCounter;
    }

    long returnMonth()
    {
        long julianEpochDays = julianDate;
        long yearCounter = EPOCHYEAR;
        long monthCounter = 1;

        while(julianEpochDays > returnDaysInYear(yearCounter))
        {
            julianEpochDays -= returnDaysInYear(yearCounter);
            yearCounter++;

        }

        while(julianEpochDays > returnDaysInMonth(yearCounter, monthCounter))
        {
            julianEpochDays -= returnDaysInMonth(yearCounter, monthCounter);
            monthCounter++;

        }

        return monthCounter;
    }

    long returnDay()
    {
        long julianEpochDays = julianDate;
        long yearCounter = EPOCHYEAR;
        long monthCounter = 1;

        while(julianEpochDays > returnDaysInYear(yearCounter))
        {
            julianEpochDays -= returnDaysInYear(yearCounter);
            yearCounter++;

        }

        while(julianEpochDays > returnDaysInMonth(yearCounter, monthCounter))
        {
            julianEpochDays -= returnDaysInMonth(yearCounter, monthCounter);
            monthCounter++;

        }

        return julianEpochDays;
    }

    long returnMonthName()
    {
        int month = 0;

        final int JAN = 1;
        final int FEB = 2;
        final int MAR = 3;
        final int APR = 4;
        final int MAY = 5;
        final int JUN = 6;
        final int JUL = 7;
        final int AUG = 8;
        final int SEP = 9;
        final int OCT = 10;
        final int NOV = 11;
        final int DEC = 12;

        switch(month)
        {

            case JAN:
                return "January";
            case FEB:
                return "Febuary";
            case MAR:
                return "March";
            case APR:
                return "April";
            case MAY:
                return "May";
            case JUN:
                return "June";
            case JUL:
                return "July";
            case AUG:
                return "August";
            case SEP:
                return "September";
            case OCT:
                return "October";
            case NOV:
                return "November";
            case DEC:
                return "December";

        }
    }
}

class utility
{

    public char queryForCharacter(String prompt)
    {
        int typedCharacter = ' ';

        try
        {
            System.out.print(prompt);
            typedCharacter = System.in.read();
        }
        catch(Exception e)
        {
        }

        return (char) typedCharacter;
    }

    public static long queryForLong(String prompt)
    {
        Scanner keyboard;
        long theNumber;

        keyboard = new Scanner(System.in);
        System.out.print(prompt);
        theNumber = keyboard.nextInt();

        return theNumber;
    }
}

public class DateDriver
{

    public static void main(String[] args)
    {
        Date aTestDate = null;
        aTestDate = new Date(1502, 1, 1);
    }
}
4

2 に答える 2

2

メソッドreturnMonthName()は long を返すように宣言されていますが、switch ケースは文字列を返します。

また、switch一致するケースがない場合、メソッドは何かを返す必要があります。

于 2013-05-24T18:38:38.440 に答える