簡體   English   中英

如何從java當年的結果獲得前一年?

[英]How to get previous year from the result of current year in java?

public class CalendarCal {

    public static void main(String[] args) {
        Date date = new Date();
        SimpleDateFormat simpleDateformat = new SimpleDateFormat("yy");
        String m = simpleDateformat.format(date);
        System.out.println("Year:" + m);
        int year = Calendar.getInstance().get(Calendar.YEAR) % 100;
        System.err.println(year);
    }
}

我可以從中檢索當前年份。 如何在實用程序的幫助下獲得最后一個(上一年)? 我不想像currentyear - 1那樣進行計算。

只需使用Calendar.add方法將“添加” -1添加到年份並將其包裝在您自己的實用程序方法中:

private static int getPreviousYear() {
    Calendar prevYear = Calendar.getInstance();
    prevYear.add(Calendar.YEAR, -1);
    return prevYear.get(Calendar.YEAR);
}

例:

public static void main(String[] args) {
    System.out.println(getPreviousYear());
}

在我的系統上打印:

2011

它簡單如下所述:

//Create calendar instance
    Calendar instance = Calendar.getInstance();

//Set your date to it
    instance.setTime(date);

//Substract one year from it
    instance.add(Calendar.YEAR, -1);

//Use the pattern you wish to display the date
    SimpleDateFormat isoFormat = new SimpleDateFormat("dd-MMM-yyyy");

// Convert the date to string using format method
    String previousYearDate = isoFormat.format(instance.getTime());

輕量級解決方案(沒有任何對象的直接或間接構造函數調用)。

   final class YearUtil {    

    static final int MILLIS_IN_SECOND = 1000;
        static final int SECONDS_IN_MINUTE = 60;
        static final int MINUTES_IN_HOUR = 60;
        static final int HOURS_IN_DAY = 24;
        static final int DAYS_IN_YEAR = 365;
        static final long MILLISECONDS_IN_YEAR = (long) MILLIS_IN_SECOND
                * SECONDS_IN_MINUTE * MINUTES_IN_HOUR * HOURS_IN_DAY * DAYS_IN_YEAR;


        public static int getCurrentYear() {
            return (int) (1970 + System.currentTimeMillis() / MILLISECONDS_IN_YEAR);
        }
    }

比使用它:

int prevYear = YearUtil.getCurrentYear() - 1;

這些數字太大了,甚至連幾年都沒有必要打擾(在你的孩子和你孩子的孩子身上......);)

喬達時間

使用Joda-Time 2.4:

int year = DateTime.now( DateTimeZone.forID( "Europe/Paris" ) ).minusYears( 1 ).getYear();
  Calendar calendarEnd=Calendar.getInstance();

  // You can substract from the current Year to get the previous year last dates.
  calendarEnd.set(Calendar.YEAR,calendarEnd.get(Calendar.YEAR)-3);
  calendarEnd.set(Calendar.MONTH,11);
  calendarEnd.set(Calendar.DAY_OF_MONTH,31);

  Date endDate=calendarEnd.getTime();

  System.out.println("\nEND Date Of this year : "+endDate);
import java.time.Year;

public class TryTime {
    public static void main(String[] args) {
        System.out.println(Year.now().minusYears(1));
    }
}
public static String previousDateString(String dateString) 
        throws ParseException {
    // Create a date formatter using your format string
    DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

    // Parse the given date string into a Date object.
    // Note: This can throw a ParseException.
    Date myDate = dateFormat.parse(dateString);

    // Use the Calendar class to subtract one day
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(myDate);
    calendar.add(Calendar.DAY_OF_YEAR, -1);

    // Use the date formatter to produce a formatted date string
    Date previousDate = calendar.getTime();
    String result = dateFormat.format(previousDate);

    return result;
}
import java.util.*;
public class GetYear {
  public static void main(String []arg){
  Calendar cal=Calendar.getInstance();
  int year=cal.get(Calendar.YEAR)-1;
  System.out.println("Current Year: " + year );
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM