从月份编号中获取一系列数字的月份名称

时间:2017-05-17 17:39:31

标签: java

我需要在表格中找到余额月份。我做了数字形式,但我需要像“一月,二月”这样的字母形式。请帮忙

    int lastpaid = Integer.parseInt(s); **//this is i am getting from my database**
    int currentmonth = m; **// this is from georigian Calender**
    int[] arr = new int[12];
    int[] month = new int[12];
    int count = 0;

    for(int j=currentmonth;j>=lastpaid+1;j--)
    {
       arr[count] = j;
       count++;
    }


    for(int k : arr)
    {
        if(k == 0)
            {
                break;
            }

        month[count] = k;

    }

2 个答案:

答案 0 :(得分:0)

您可以使用1)月份或2)自己的方法从String获取int个月的描述。

案例1:

String[] monthString = new String[]{"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};

稍后,在代码中,您可以将其称为: 实施例:

 for(int i=0; i<12; i++) {
       System.out.println("Month: "+monthString[i]);
    }

假设我们有时需要一些月份(5,4,3,2);

...(monthString[5], monthString[4], monthString[3], monthString[2]) ..

案例2:

   public String getMonth(int month){
        String monthString;
        switch (month) {
            case 1:  monthString = "January";
                     break;
            case 2:  monthString = "February";
                     break;
            case 3:  monthString = "March";
                     break;
            case 4:  monthString = "April";
                     break;
            case 5:  monthString = "May";
                     break;
            case 6:  monthString = "June";
                     break;
            case 7:  monthString = "July";
                     break;
            case 8:  monthString = "August";
                     break;
            case 9:  monthString = "September";
                     break;
            case 10: monthString = "October";
                     break;
            case 11: monthString = "November";
                     break;
            case 12: monthString = "December";
                     break;
            default: monthString = "Invalid month";
                     break;
        }
        return monthString;
    }

实施例

   for(int i=0; i<12; i++) {
       System.out.println("Month: "+getMonth(i));
    }

输出:

Month: January
Month: February
Month: March
Month: April
Month: May
Month: June
Month: July
Month: August
Month: September
Month: October
Month: November
Month: December

答案 1 :(得分:0)

TL;博士

Month.of( 5 ).getDisplayName( TextStyle.FULL , Locale.US )
  

java.time

现代方法使用 java.time 类。 Month枚举为一年中的每个月提供一个对象。您可以通过数字检索每个。然后请Month名称为该月的名称生成本地化字符串。

int[] monthNumbers = { 5,4,3,2} ;
for ( int monthNumber : monthNumbers ) {
    Month month = Month.of( monthNumber );  // Get a month for number, 1-12 for January-December.
    String monthName = month.getDisplayName( TextStyle.FULL , Locale.US ) ;  // Or Locale.CANADA_FRENCH etc.
    System.out.println(monthName);
}

跑步时。

  

     

四月

     

三月

     

二月

关于 java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期时间类,例如java.util.DateCalendar和&amp; SimpleDateFormat

现在位于Joda-Timemaintenance mode项目建议迁移到java.time类。

要了解详情,请参阅Oracle Tutorial。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310

您可以直接与数据库交换 java.time 对象。使用符合JDBC driver或更高版本的JDBC 4.2。不需要字符串,不需要java.sql.*类。

从哪里获取java.time类?

ThreeTen-Extra项目使用其他类扩展java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如IntervalYearWeekYearQuartermore