繁体   English   中英

如何压缩此代码

[英]How to condense this code

这是写这篇文章的好方法吗,还是我可以使用一种不那么肿的形式?

import java.util.Calendar;

public class Day {

    public static void main(String[] args){
        Calendar cal = Calendar.getInstance();
        System.out.println("Todays date is : " + cal.getTime());


//increment by one from current date

        int OneIncrementalDay = 1;
        cal.getTime();
        cal.add(Calendar.DATE,
               OneIncrementalDay);
        System.out.println("Tomorrows date is : " + cal.getTime());

//deduction by one from current date

       int OneDayDeducted = -1;
       cal.getTime();
       cal.add(Calendar.DATE,
               OneDayDeducted);
       System.out.println("Yesterdays date was : " + cal.getTime());
       cal.getTime();

//increment of 15 from current date 

       int FifteenDaysIncremental = 15;
       cal.getTime();
       cal.add(Calendar.DATE,
                FifteenDaysIncremental);
       System.out.println("15 days from the current"
               + " date is : " + cal.getTime());


    }
}

是的,如果您使用的是Java 8,则可以使用新的java.time API

    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;

     ...

    //or whatever format you want to use
    DateTimeFormatter fmt = DateTimeFormatter.ISO_LOCAL_DATE;

    //java.time.LocalDate
    LocalDate today = LocalDate.now();

     System.out.println("Todays date is : " + today.format(fmt));


    //increment by one from current date
     System.out.println("Tomorrows date is : " + today.plusDays(1).format(fmt));

     System.out.println("Yesterdays date was : " + today.minusDays(1).format(fmt));

      System.out.println("15 days from the current date is " + today.plusDays(15).format(fmt));

也有加/减月年等方法

您拥有的东西出于可读性目的而很好,但是如果您真的想缩小它,则可以做一件事。 由于除了值之外,三个块中的每个块基本相同,因此将所有值放入长度为3的数组中,然后使用for循环来适当地更改值,例如:

int[] increments = {1, -1, 15};
String[] text = {"Tomorrows date is : ",
                 "Yesterdays date was : ",
                 "15 days from the current date is : "};

for (int i = 0; i < increments.length; i++)
{
    cal.getTime();
    cal.add(Calendar.DATE, increments[i]);
    System.out.println(text[i] + cal.getTime());
}

如果我是那个程序员,我会这样做

  import java.util.Calendar;

    public class Day {
        Calendar cal = Calendar.getInstance();

    public Calendar inCrementNumberofDays(Integer day){
            cal.getTime();
            cal.add(Calendar.DATE,
                   day);
            return cal;        
    }

    public Calendar decrementNumberofDays(Integer day){
            day = day * -1;
            cal.getTime();
            cal.add(Calendar.DATE,
                   day);
            return cal;        
    }
     public static void main(String[] args){

            System.out.println("Todays date is : " + cal.getTime());

    //increment by one from current date
            cal = inCrementNumberofDays(1);
            System.out.println("Tomorrows date is : " + cal.getTime());

    //deduction by one from current date
           cal = decrementNumberofDays(1);
           System.out.println("Yesterdays date was : " + cal.getTime());

    //increment of 15 from current date 
           cal = inCrementNumberofDays(15);
           System.out.println("15 days from the current"
                   + " date is : " + cal.getTime());
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM