0

当我编写稍微复杂一点的程序时,我总是对如何构建程序感到困惑。我想举个例子,不需要修复代码。但是要了解什么是最好或最正确的方法。

示例程序:

现在我想用我的程序做不同的事情(不使用 Java 日期类或 Yoda 时间)。

  1. 我想检查一年是否是闰年
  2. 我想检查给定日期是哪一天;
  3. 我想检查这一天在哪几年是一样的。
  4. 比较两个日期,并计算月、日等。

为了实现这种功能,有一些事情需要注意:

  1. 一年是闰年吗
  2. 哪一天是 1 月 1 日。
  3. 一年有 52 周还是 53 周?

创建日期时,会创建一个带有日、月和年对象的新数据对象。带有日期,例如 05-11-2002。将创建一个新的 Date 对象,其中包含新的 Year 对象、新的 Month 对象和新的 Day 对象(包含 2012、11、5)。

我创建了一个新的 Date 类,其中包括:

public class Date {
    Year year;
    Month month;
    Day day;

对于我的年级,我只取一个 int 的年份,并检查这一年是否是闰年:

public class Year {
    int year; 
    boolean leapyear; 

到目前为止一切顺利,没有真正的大问题。

在我的月份课程中,我只学习 int 月份;

 public class Month {
    int month; 

但是,在我的日间课程中,我需要更多选择。在我的日间课上,我需要一天更多的事情。

  1. 我需要计算给定一个月、一天和闰年的总天数(是/否)。
  2. 检查给定年份的 1 月的第一个
  3. 检查给定日期和年份的日期。

所以我需要来自其他对象的数据,来自我的 Year 和 Month 对象。这是我的第一点示例(找出一年中某一天的数字)。

    public class Day {

        int day; 
        int dayTotal;  
        int januaray1st; 


    public void daytotal(int m, int d, boolean leapyear) {


        int day = 0; 

        if (m == 0) {
            days = 0; 
        }
        if (m == 1) {
            days = 31; 
        }
        if (m == 2) {
            days = 59; 
        }
        if (m == 3) {
            days = 90; 
        }
        if (m == 4) {
            days = 120; 
        }
        if (m == 5) {
            days = 151; 
        }
        if (m == 6) {
            days = 181; 
        }
        if (m == 7) {
            days = 212; 
        }
        if (m == 8) {
            days = 243; 
        }
        if (m == 9) {
            days = 273; 
        }
        if (m == 10) {
            days = 304; 
        }
        if (m == 11) {
            days = 334; 
        }




        if (leapyear = true && m > 1) {
        days += 1; 
        } else {
        days = d + days; 
        }
        this.dayTotal = days; 
  }

做这个的最好方式是什么?

在这个示例中,我想将leapYear 方法与我的Day 和Year 对象中的变量一起使用。在这种情况下,我通常会遇到问题。通常我会通过反复试验来计算它,但我想知道处理这个问题的最佳方法是什么?

问题 1. 在这种情况下,你的方法最好的方法是什么?我应该制作一个 testDate.java 还是其他方式?

4

0 回答 0