有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过输入月份和年份的整数来查找特定月份?

我的家庭作业涉及用户输入2个整数(月和年),我想知道如何做到这一点,我在日历类文档中搜索了一些,但没有找到我要搜索的内容。 我要做的主要事情是打印一个日历,就像Windows中的日历一样,我从用户那里得到的唯一输入是月份和年份的数字,我需要找到一种方法来查找月份是31天、30天、29天还是28天,以及该月份开始的日期。 http://lifehacker.com/assets/2006/06/vista-windows-calendar.jpg这是我想做的,但作为文本,不打印其他月份的日期


共 (4) 个答案

  1. # 1 楼答案

    既然这是家庭作业,我就不会泄露所有的秘密。你必须弄清楚剩下的

    在不知道您尝试过什么或查找月份是什么意思的情况下,我认为您希望获得一个基于一年零一个月的日期对象

    {}类是一个正确的开始。首先,您应该使用getInstance()方法获得一个实例,特别考虑set(int field, int value)方法来设置日历的年份和月份

    如果您想知道如何知道要设置哪个字段,请尝试使用Calendar本身定义的不同常量值(按照惯例,这些常量值是以大写字母命名的,只供您查找)

    最后,您只需要通过getTime()方法获得Date

    编辑

    遵循Calendar类方法并使用set,您可以得出您正在搜索的月份

    使用getActualMaximum(int field)Calendar.DAY_OF_MONTH这样的方法。这实际上是答案之一。另一个是类似的,我让你来决定

    提示:创建一个日历并使用字段,尝试将一个月的日期设置为1(第一天),将当前月份设置为您需要从中获取信息的日期

  2. # 2 楼答案

    import java.util.Calendar;
    import java.text.SimpleDateFormat;
    
    class PrintCalendar {
        public static void main(String args[]) {
            Calendar c = Calendar.getInstance();
    
            int month = 3;
            int year = 2011;
    
            c.set(year, month, 1); // Set c's time to first day of specified month/year
    
            // Day of week (by numerical index) can also be obtained programmatically with c.get(Calendar.DAY_OF_WEEK)
            System.out.println("First day of month falls on a " + new SimpleDateFormat("EEEE").format(c.getTime()));
            // "Actual maximum" means the maximum in the current timeframe; that is, it will return 29 for a February in a leap year
            System.out.println("Month has " + c.getActualMaximum(Calendar.DAY_OF_MONTH) + " days");
        }
    }
    
  3. # 3 楼答案

    看看DateFormatSymbols。这有检索月份的方法。然后可以使用数组中的索引位置(月号)来获取月份

       String[] months = new DateFormatSymbols(Locale.getDefault()).getMonths();
       System.out.println(months[0]);
       System.out.println(months[11]);
    

    因为这是家庭作业,我会让你找出为什么[0]会给1月,而[11]会给12月

  4. # 4 楼答案

    你可以用java.util.Date来做这个:

    int month = 3 ; // Input
    int year = 2012 ; // Input
    Date date = new Date() ;
    date.setMonth(month) ;
    date.setYear(year) ;
    

    但由于Date已被弃用,因此必须使用java.util.Calendar。等效功能包括:

    Calendar.set(Calendar.MONTH, month) ;
    Calendar.set(Calendar.YEAR, year) ;