课程实验题目都比较简单,其中一道是要得到斐波那契数列,验证后项与前项的比值最终收敛:
代码如下:
public class Fib{
final static int N = 92;
public static void main(String args[]){
long fibs[] = new long[N] ;
fibs[0] = 0L;
fibs[1] = 1L;
int i = 2;
while(i < N)
{
fibs[i] = fibs[i-1] + fibs[i-2];
i++;
}
System.out.println(fibs[N-1]);
double nums[] = new double[N];
nums[0] = 0;
nums[1] = 1;
i = 2;
while(i < N)
{
nums[i] = 1.0 * fibs[i] / fibs[i-1];
i++;
}
for(double rate : nums)
{
System.out.println(rate);
}
}
}
按照“XXXX年XX月XX日XX时XX分 星期X”格式(例如:2016年10月22日 23小时46分 下午 星期六)显示以下时间:
(1)当前时间。
(2)2016-9-1 22:40:30经过135天4000秒后的时间。
* 要求用方法getCnDate(Calendar cal)返回cal中的中文时间,星期几需要用switch语句实现。代码如下:
import java.util.*;
import java.text.*;
public class ShowDate{
public static void main(String args[]) throws Exception {
Date now = new Date();
System.out.println("now: "+now);
Calendar cal=Calendar.getInstance();
cal.setTime(now);
System.out.println("(1). "+getCnDate(cal));
cal.set(2016,8,1,22,40,30);//设置的是9月,但是需要-1,参数为8
System.out.println("设置的对象中,得不到星期几:"+getCnDate(cal));
cal.add(Calendar.DAY_OF_YEAR,135);
cal.add(Calendar.SECOND,4000);
System.out.println("(2). "+getCnDate(cal));
}
static String getCnDate(Calendar cal){
String ans = "";
ans += (cal.get(Calendar.YEAR)+ "年" + (int)(cal.get(Calendar.MONTH)+1) + "月" + cal.get(Calendar.DAY_OF_MONTH) + "日");
ans += (cal.get(Calendar.HOUR_OF_DAY) + "时" + cal.get(Calendar.MINUTE) + "分" + "星期" );
String temp = "";
switch (cal.get(Calendar.DAY_OF_WEEK))
{
case 1:temp = "天";break; //星期天是一周的开始
case 2:temp = "一";break;
case 3:temp = "二";break;
case 4:temp = "三";break;
case 5:temp = "四";break;
case 6:temp = "五";break;
case 7:temp = "六";break;
}
System.out.println("DAY_OF_WEEK得到的值是:"+ cal.get(Calendar.DAY_OF_WEEK));
ans += temp;
return ans;
}
}
这里直到我后来复习的时候才发现了我一些知识误区和这个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种情况是需要区分的。
参考至:http://www.tuicool.com/articles/Avqauq