4.2使用预定义类

2019-03-12  本文已影响0人  十六只猴子王

对象与对象变量

要想使用对象,就必须构造对象,并指定其初始状态。

new Date()

将这个对象传递给一个方法:

System.out.println(new Date());

或者将方法用于一个创建好的对象,toStrign方法用于返回日期的字符串描述

String s = new Date().toString();

如果想要多次使用,需要将对象存放在一个变量中

Date birthday = new Date();

java中的LocalDate类

date类,时间是用一个距离固定时间点的毫秒数表示的,这个点就是所谓的纪元它是UTC时间1970年1月1日0:00:00。

LocalDate.now()

可以提供年、月、日来构造一个特定的日期:

LocalDate.of(1990,12,13)

将构造的对象保存在一个对象变量中:

LocalDate newYearEve = LocalDate.of(1999.12.31);

plusDays方法会得到个新的LocalDate,如果应用这个方法的对象称为当前对象,则新日期对象则是距当前对象指定天数的一个新日期

LocalDate aThousandDaysLater = newYearEve.plusDays(1000)

更改器方法于访问器方法

plusDays方法产生一个欣的LocalDate对象,然后把这个新的对象赋给 aThousandDaysLater变量

GregorianCalendar someDay = newYearEve.GregorianCalendar(1999,11,31);
//那个类的奇怪特征:月份从0到1
someDay.add(Calendar.DAY_OF-MONTH,1000);

GregorianCalendar.add方法是一个更改器方法
只访问对象而不修改对象的方法称为访问器方法

方法

这个程序需要解决如何计算某月份的天数以及一个给定日期相应是星期几,当前日期用*标记

import java.time.*;
public class Main3
{
   public static void main(String[] args)
   {
      LocalDate date = LocalDate.now();
      int month = date.getMonthValue();
      int today = date.getDayOfMonth();

      date = date.minusDays(today - 1); // 设置为月初
      DayOfWeek weekday = date.getDayOfWeek();
      int value = weekday.getValue(); // 1=周一,…7=周日

      System.out.println("Mon Tue Wed Thu Fri Sat Sun");
      //日历上第一行是缩进的,是的月份第一天指向相应的星期几
      for (int i = 1; i < value; i++)
         System.out.print("    ");
      //不知道一个月是几天,实际上只要date还在本月就行了
      while (date.getMonthValue() == month)
      {
         System.out.printf("%3d", date.getDayOfMonth());
         if (date.getDayOfMonth() == today)
            System.out.print("*");
         else
            System.out.print(" ");
         date = date.plusDays(1);
         //如果到达新的一周则打印换行
         if (date.getDayOfWeek().getValue() == 1) System.out.println();
      }
      if (date.getDayOfWeek().getValue() != 1) System.out.println();
   }
}
上一篇下一篇

猜你喜欢

热点阅读