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

时间:2012-10-01 18:44:38

标签: java

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

4 个答案:

答案 0 :(得分:1)

您可以使用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) ;

答案 1 :(得分:1)

由于这是家庭作业,我不会泄漏所有的豆子。你必须弄清楚其余部分。

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

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

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

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

修改

遵循Calendar课程方法并使用set,您可以提出您正在搜索的月份。

使用getActualMaximum(int field)Calendar.DAY_OF_MONTH等方法。这几乎就是答案之一。另一个是相似的,我将它留给你。

提示:创建日历并使用字段进行播放,尝试将当月的日期设置为1(第一天),将当月设置为获取信息所需的日期。

答案 2 :(得分:1)

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

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

因为它的功课我会让你弄清楚为什么[0]给Januaray而[11]给了12月

答案 3 :(得分:0)

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");
    }
}