如何从用户输入的一年获得最后两位数

时间:2014-05-03 04:25:53

标签: java integer stringbuilder

我一直在玩这个,我似乎无法理解如何完成这项任务。

我的任务:

我需要获取用户输入的一年的最后两位数字。

示例:

用户进入2014年7月2日;我需要得到2014年的最后两位数字,即“14”并将其除以4.这将给我3.5;但是我会忽略“.5”而只是保留3.

研究:

我一直在阅读我的教科书,并看到了我可以使用的一种方法,其中包括字符串构建器类。然而,我的书有一个非常简短的描述,并没有显示我可以建设性地用来完成任务的例子。

进度:

这是我到目前为止,它基本上是我想要我的程序的模板;我只需要帮助获得一年的最后两位数字。

public class DateCalc

{
    public static void main (String[] args)
    {
    String month;
    int day;
    int year;
            Scanner  keyboard = new Scanner(System.in); 

                // receiving input 
                System.out.print( "Please Enter The Month Of The Date : ");
                month = keyboard.nextLine();
                // receiving input 
                System.out.print( "Please Enter The Day Of The Date : ");
                day = keyboard.nextInt();
                // receiving input
                System.out.print( "Please Enter The Year OF The Date : ");
                year = keyboard.nextInt();

        switch(month) 
        {  

              // keys are numbered indexes that I need for this, please disregard

            case "January" :
            int janKey = 1;
            break;


            case "February":  
            int febKey = 4;
            break;  


            case "March":  
            int marKey = 4;
            break;


            case "April":  
            int aprKey = 0; 
            break;

            case "May":  
            int maykey = 2; 
            break;

            case "June":  
            int junKey = 5; 
            break;

            case "July":  
            int julKey = 0; 
            break;

            case "August":  
            int augKey = 3; 
            break;

            case "September":  
            int septKey = 6; 
            break;

            case "October":  
            int octKey = 1; 
            break;

            case "November":  
            int novKey = 4; 
            break;

            case "December":  
            int decKey = 4; 
            break;

            //  IN MY DEFUALT CASE " inputValidation " WILL BE EXECUTED
            default:
            JOptionPane.showMessageDialog(null," Invalid Entry Please Try Again " );

        }
    }  
}                                               

4 个答案:

答案 0 :(得分:1)

您可以做的一件事是将年份修改为100以获得最后2位数字。然后你就可以用它做任何你需要的数学运算。

这可以扩展为获得任意数量的数字;按10^n修改数字会产生该数字的最后{​​{1}}位数。

编辑,因为我很愚蠢,认为nyear

答案 1 :(得分:1)

恕我直言,清洁选项是将日,月和年转换为日历。然后从日历中获得两位数的年份。

这样的事情:

Calendar cal = Calendar.getInstance();
cal.set(year, month, day);
SimpleDateFormat sdf = new SimpleDateFormat("yy"); // Just the year, with 2 digits
String formattedDate = sdf.format(Calendar.getInstance().getTime());
System.out.println(formattedDate);

答案 2 :(得分:0)

您可以执行String yearString = Integer.toString(year).substring(2)之类的操作,首先将整数转换为字符串,然后获取由第二个字符后的所有内容组成的子字符串。然后将其重新变为整数,请尝试int yearInt = Integer.parseInt(yearString)

答案 3 :(得分:0)

String date = "July 2 , 2013";
String year = ""+ date.charAt(date.length()-2) + date.charAt(date.length()-1);
System.out.println(year);

int year2 = Integer.parseInt(year);
System.out.println(year2);