Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 查找一年中剩余的月份_Java_Date - Fatal编程技术网

Java 查找一年中剩余的月份

Java 查找一年中剩余的月份,java,date,Java,Date,我正在试图找到一种方法来获取一年中月份的数组(例如:2017) 该数组仅为一年中的剩余月份 这是否可能,实现这一目标的最佳方式是什么 我搜索了答案,但没找到 例如:{code>10月”、“11月”、“12月”} 我到目前为止所做的工作:我能够获得今年的奖金 Date now = new Date(); int year = now.getYear(); 使用gregoriacalendar.getInstance().get(Calendar.MONTH)获取当前月数(对于十月,您

我正在试图找到一种方法来获取一年中月份的
数组(例如:
2017

  • 该数组仅为一年中的剩余月份
  • 这是否可能,实现这一目标的最佳方式是什么
  • 我搜索了答案,但没找到
  • 例如:{code>10月
    ”、“
    11月
    ”、“
    12月
    ”}


    我到目前为止所做的工作:我能够获得今年的奖金

    Date now = new Date();    
    int year = now.getYear(); 
    

    使用
    gregoriacalendar.getInstance().get(Calendar.MONTH)
    获取当前月数(对于十月,您将获得9)

    您最好使用新的API
    LocalDate
    而不是
    Date
    ,它更易于使用

    • 首先,您需要获取当前日期:这里是201年10月7日
    • 你需要知道到年底还有多少个月。这里是2
    • 然后创建一个
      数组
      大小为+1
      (+1表示当月)这里的大小为3
    • 然后用您拥有的日期月份+
      i
      month填充
      数组

    LocalDate=LocalDate.now();
    int nbMonthRemain=12-date.getMonth().getValue();
    字符串[]月剩余=新字符串[nbMonthRemain+1];
    对于(int i=0;i

    小贴士:

    .toString()替换为

    • .getDisplayName(TextStyle.FULL,Locale.ENGLISH)
      获取
      [十月、十一月、十二月]
    • .getDisplayName(TextStyle.FULL\u独立,Locale.ENGLISH)
      获取
      [10,11,12]
    • .getDisplayName(TextStyle.SHORT,Locale.ENGLISH)获取
      [10月、11月、12月]
    我相信下面的代码会有所帮助
    导入java.text.DateFormatSymbols;
    导入java.util.List;
    导入java.util.ArrayList;
    公共列表GetLeftMonth(整数Mon_num){
    列表月份列表=新的ArrayList();
    String[]months=新的DateFormatSymbols().getMonths();
    对于(int i=Mon_num;i
    公共静态void main(字符串[]args){
    LocalDate now=LocalDate.now();
    int currentMonth=now.getMonthValue();
    int monthxinayear=12;
    int monthsraining=monthsInAYear-currentMonth;
    System.out.println(剩余月);//2
    
    对于(int i=currentMonth;i),当前月份可能比当前年份更有用。很好!您还可以使用
    YearMonth
    类,因为日期对算法并不重要。
    LocalDate date = LocalDate.now();
    int nbMonthRemain = 12 - date.getMonth().getValue();
    
    String[] monthsRemaining = new String[nbMonthRemain + 1];
    for (int i = 0; i < monthsRemaining.length; i++) {
        monthsRemaining[i] = date.plusMonths(i).getMonth().toString();
    }
    
    System.out.println(Arrays.toString(monthsRemaining)); // [OCTOBER, NOVEMBER, DECEMBER]
    
     i believe something like below code could help      
    
    import java.text.DateFormatSymbols;
    import java.util.List;
    import java.util.ArrayList; 
    public List GetLeftMonth(Integer Mon_num){
     List<String> monthsList = new ArrayList<String>();
            String[] months = new DateFormatSymbols().getMonths();
            for (int i = Mon_num; i < months.length; i++) {
              String month = months[i];
              System.out.println("month = " + month);
              monthsList .add(months[i]);
                    }
        return monthsList;
        }
    
    public static void main(String[] args) {
      LocalDate now = LocalDate.now();
      int currentMonth = now.getMonthValue();
      int monthsInAYear = 12;
    
      int monthsRemaining = monthsInAYear - currentMonth;
      System.out.println(monthsRemaining); // 2
    
      for (int i = currentMonth; i <= monthsInAYear; i++) {
        System.out.println(getMonthName(i)); // OCTOBER NOVEMBER DECEMBER
      }
    }
    
    private static Month getMonthName(int monthValue) {
      return Month.of(monthValue);
    }