A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package day21_practice;

  2. import java.util.Calendar;
  3. import java.util.Scanner;

  4. /*
  5. * 输入一个年份,计算出这一年的二月份有多少天。
  6. */
  7. public class CalendarDemo2 {

  8.         public static void main(String[] args) {
  9.                 Scanner sc=new Scanner(System.in);
  10.                 System.out.println("请输入一个年份:");
  11.                 int year=Integer.parseInt(sc.nextLine());
  12.                 sc.close();
  13.                 Calendar calendar=Calendar.getInstance();
  14.                 calendar.set(year, 2, 1);//这个是社么用??
  15.         calendar.add(Calendar.DATE, -1);//这又是什么,Calendar.DATE到底是个什么,查API也没说清啊。。
  16.         System.out.println(calendar.get(Calendar.DATE));
  17.         }

  18. }
复制代码

一个题,用Calendar类实现,计算一个年份的二月分的值。。。擦。。。一点思路没有。。。到网上查了一下。。自己敲的代码如上,就是没看懂。。

4 个回复

倒序浏览
calendar.set(year, 2, 1);//  这句是设置日历时间,把时间设轩3月1日。因为在java中,月份是从0开始排的,也就是说一月份的数字是0,二月份是1,三月分是2。

calendar.add(Calendar.DATE, -1);//这句话的意思是,把你设置的时间(3月1号)减一天,就得到了那年2月份的最后一天,也就是要求的这一年2月份有多少天。

Calendar.DATE是Calendar的一个字段,表示天数。
回复 使用道具 举报
楼主我也查了下API注解了哈你不懂的地方,上面懂的就没注解哈.

package com.itheima.bbs;

import java.util.Calendar;
import java.util.Scanner;

/*
* 输入一个年份,计算出这一年的二月份有多少天。
*/
public class HongtenDate {

        public static void main(String[] args) {
               
                Scanner sc=new Scanner(System.in);
               
                System.out.println("请输入一个年份:");
               
                int year=Integer.parseInt(sc.nextLine());
               
                sc.close();
               
                // 使用默认时区和语言环境获得一个日历(当前日期  )
               
                /*
                 Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。
                 
                 Calendar 的 getInstance 方法返回一个 Calendar 对象,  其日历字段已由当前日期和时间初始化     
                                                   
                 */
                Calendar calendar=Calendar.getInstance();
               
              
                /*  
                 set:
                 
                            public final void set(
                            
                            int year,
               
                int month,
               
                int date)设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
               
                                                     保留其他日历字段以前的值。如果不需要这样做,则先调用 clear()。

                                参数:
                               
                                year - 用来设置 YEAR 日历字段的值。
                               
                                month - 用来设置 MONTH 日历字段的值。Month 值是基于 0 的。例如,0 表示 January。
                               
                                date - 用来设置 DAY_OF_MONTH 日历字段的值。
               
                 */
                //设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
                                             
                calendar.set(year, 2, 1);//(设为输入年份的3月1号)
               
                //  (add(Calendar.DAY_OF_MONTH,-1)//减一天,变为上月最后一天
               
                calendar.add(Calendar.DATE, -1);//?这又是什么,Calendar.DATE到底是个什么,查API也没说清啊。。
      
                // get(Calendar.DAY_OF_MONTH)获得这个月的第几天 ;(换句话说就是2月的最后一天,3月1号的前一天)      
                System.out.println(calendar.get(Calendar.DATE));
        
                }

}
回复 使用道具 举报
晕 发错了 我发代码你好看些;麻烦删除一下;
  1. package com.itheima.bbs;

  2. import java.util.Calendar;
  3. import java.util.Scanner;

  4. /*
  5. * 输入一个年份,计算出这一年的二月份有多少天。
  6. */
  7. public class HongtenDate {

  8.         public static void main(String[] args) {
  9.                
  10.                 Scanner sc=new Scanner(System.in);
  11.                
  12.                 System.out.println("请输入一个年份:");
  13.                
  14.                 int year=Integer.parseInt(sc.nextLine());
  15.                
  16.                 sc.close();
  17.                
  18.                 // 使用默认时区和语言环境获得一个日历(当前日期  )
  19.                
  20.                 /*
  21.                  Calendar 提供了一个类方法 getInstance,以获得此类型的一个通用的对象。
  22.                  
  23.                  Calendar 的 getInstance 方法返回一个 Calendar 对象,  其日历字段已由当前日期和时间初始化     
  24.                                                    
  25.                  */
  26.                 Calendar calendar=Calendar.getInstance();
  27.                
  28.               
  29.                 /*  
  30.                  set:
  31.                  
  32.                             public final void set(
  33.                             
  34.                             int year,
  35.                
  36.                 int month,
  37.                
  38.                 int date)设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
  39.                
  40.                                                      保留其他日历字段以前的值。如果不需要这样做,则先调用 clear()。

  41.                                 参数:
  42.                                
  43.                                 year - 用来设置 YEAR 日历字段的值。
  44.                                
  45.                                 month - 用来设置 MONTH 日历字段的值。Month 值是基于 0 的。例如,0 表示 January。
  46.                                
  47.                                 date - 用来设置 DAY_OF_MONTH 日历字段的值。
  48.                
  49.                  */
  50.                 //设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。
  51.                                              
  52.                 calendar.set(year, 2, 1);//(设为输入年份的3月1号)
  53.                
  54.                 //  (add(Calendar.DAY_OF_MONTH,-1)//减一天,变为上月最后一天
  55.                
  56.                 calendar.add(Calendar.DATE, -1);//?这又是什么,Calendar.DATE到底是个什么,查API也没说清啊。。
  57.       
  58.                 // get(Calendar.DAY_OF_MONTH)获得这个月的第几天 ;(换句话说就是2月的最后一天,3月1号的前一天)      
  59.                 System.out.println(calendar.get(Calendar.DATE));
  60.         
  61.                 }

  62. }
复制代码
回复 使用道具 举报
条条大路通罗马,取3月份第一天,和一月份最后一天,转成long型,相减,除于 一天的毫秒数24*60*60*1000,最后得到的天数应该在减个1,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马