关键词:DateFormat、getTime()import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Scanner;public class demo { public static void main(String[] args) throws ParseException { Scanner sc = new Scanner(System.in); System.out.print("请输入查询日期(例“2-3”即2月3日):"); String input = "2000-" + sc.next(); //输入查询,之所以实2000因为其是闰年,2月有29号 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); long birth = sdf.parse(input).getTime(); //解析为Date并获取时间戳 if (birth >= getTimer("2000-03-21") && birth <= getTimer("2000-04-19")) { System.out.println("白羊座"); } else if (birth >= getTimer("2000-04-20") && birth <= getTimer("2000-05-20")) { System.out.println("金牛座"); } else if (birth >= getTimer("2000-05-21") && birth <= getTimer("2000-06-20")) { System.out.println("双子座"); } else if (birth >= getTimer("2000-06-21") && birth <= getTimer("2000-07-21")) { System.out.println("巨蟹座"); } else if (birth >= getTimer("2000-07-22") && birth <= getTimer("2000-08-22")) { System.out.println("狮子座"); } else if (birth >= getTimer("2000-08-23") && birth <= getTimer("2000-09-22")) { System.out.println("处女座"); } else if (birth >= getTimer("2000-09-23") && birth <= getTimer("2000-10-22")) { System.out.println("天秤座"); } else if (birth >= getTimer("2000-10-23") && birth <= getTimer("2000-11-21")) { System.out.println("天蝎座"); } else if (birth >= getTimer("2000-11-22") && birth <= getTimer("2000-12-21")) { System.out.println("射手座"); } else if (birth >= getTimer("2000-01-20") && birth <= getTimer("2000-02-18")) { System.out.println("水瓶座"); } else if (birth >= getTimer("2000-02-19") && birth <= getTimer("2000-03-20")) { System.out.println("双鱼座"); } else { System.out.println("摩羯座"); } } public static long getTimer (String date) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.parse(date).getTime(); }}
Q:现有一个字符数组{'i','t','c','a','s','a'},请使用System类中的arraycopy()方法在控制台输出“itcast”。(提示:将[1]号数组元素复制到最后位置并覆盖原有元素。)char[] str={'i','t','c','a','s','a'};System.arraycopy(str,1,str,5,1);System.out.print(str);一直忽略的误区:1、以为arraycopy需要两个不同数组,但是其实一个数组也可以操作2、char[]数组不用遍历输出,可以直接打印出来拓展:char类型的数组就相当于一个字符串。因为输出流System.out是PrintStream对象,PrintStream有多个重载的println方法,其中一个就是public void println(char[] x),直接打印字符数组的话,不像int[]等其他数组,它会直接调用这个方法来打印,因而可以打印出数组内容,而不是地址。
网上找的,刚刚接触Calendar类,有点复杂,记下来。Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。1. 在获取月份时,Calendar.MONTH + 1 的原因Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需要+1。2. 在获取星期几 Calendar.DAY_OF_WEEK – 1 的原因Java中Calendar.DAY_OF_WEEK其实表示:一周中的第几天,所以他会受到 第一天是星期几 的影响。有些地区以星期日作为一周的第一天,而有些地区以星期一作为一周的第一天,这2种情况是需要区分的。看下表的返回值星期日为一周的第一天SUNMONTUEWEDTHUFRISATDAY_OF_WEEK返回值1234567星期一为一周的第一天MONTUEWEDTHUFRISATSUNDAY_OF_WEEK返回值1234567所以Calendar.DAY_OF_WEEK需要根据本地化设置的不同而确定是否需要 “-1”Java中设置不同地区的输出可以使用 Locale.setDefault(Locale.地区名) 来实现。3. 获取日期时 Calendar.DAY_OF_MONTH 不需要特殊的操作,他直接返回一个月中的第几天