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)您最好使用新的APILocalDate
而不是Date
,它更易于使用
- 首先,您需要获取当前日期:这里是201年10月7日
- 你需要知道到年底还有多少个月。:这里是2
- 然后创建一个
数组
(+1表示当月):这里的大小为3大小为+1
- 然后用您拥有的日期月份+
month填充i
数组
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);
}