Java自定义日期类dateToString()未将日期作为String打印

时间:2017-03-18 23:26:38

标签: java oop

public class Date {

    private int day;
    private int month;
    private int year;


    public Date(){
        this.day = 01;
        this.month = 01;
        this.year = 2000;
    }

    public Date(int month, int day, int year){
        this.day = day;
        this.month = month;
        this.year = year;
    }

    public int getday(){
        return day;
    }

    public int getmonth(){
        return month;
    }

    public int getyear(){
        return year;
    }

    public void setday(int day){
        this.day = day;
    }

    public void setmonth(int month){
        this.month = month;
    }

    public void setyear(int year){
        this.year = year;
    }

    public boolean leapYear(){
        if((year%4 == 0) && (year%100 != 0) || (year%400 == 0))
            return true;
        return false;
    }

    public int differenceInDays(){


    }

    public String dateToString(){
        String d = Integer.toString(this.day);
        String m = Integer.toString(this.month);
        String y = Integer.toString(this.year);
        return "d/m/y";
    }

我遇到的问题很少,其中一个问题是,如何在不使用外部库的情况下以天数显示两个日期之间的差异。第二,当我在主要方法中调用方法时,它们并没有真正起作用。

到目前为止,这是我的主要课程。

public static void main(String[] args){

        Date d1 = new Date();

        d1.setday(31);
        d1.setmonth(12);
        d1.setyear(2004);

        d1.dateToString();


    }

当我使用dateToString()方法时,我设置的日期,月份,年份不会变成字符串。我究竟做错了什么?我真的想在不使用外部库的情况下这样做。

4 个答案:

答案 0 :(得分:1)

首先,您的 public String dateToString(){ String d = Integer.toString(this.day); String m = Integer.toString(this.month); String y = Integer.toString(this.year); return d + "/" + m + "/" + y; } 中存在编译错误,因此请将其修复

其次,在您的differenceInDays()方法中,您总是返回" d / m / y"字符串(硬编码),但您需要做的是使用实际变量组成日期字符串,如下所示:

dateToString()

另外,我建议您始终使用public String dateToString() { String dateString= new StringBuilder().append(this.day).append("/"). append(this.month).append("/").append(this.year).toString(); return dateString; } 如上所示来连接字符串。

答案 1 :(得分:1)

快速观察......

您正在返回字符串import networx as nx def find_path(digraph, start="USD"): path = nx.bellman_ford(digraph, start) return path

您尝试做的事情似乎是"d/m/y"

或另一种方式.... return d + "/" + m + "/" + y;

答案 2 :(得分:1)

如果您想打印使用

System.out.println(d1.dateToString());

在你的主要方法中 并使用给定的答案更正您的datToString方法

答案 3 :(得分:-1)

onProgressView()