黑马程序员技术交流社区
标题:
日期计算问题
[打印本页]
作者:
hnyzhlq
时间:
2015-7-11 16:44
标题:
日期计算问题
/**
* 第九题: 编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,
* 程序计算这一天是星期几,并且计算出是一年中的第几天。
*/
import java.util.*;
class Test9
{
public static void main(String[] args)
{
sop("请按“yyyy-MM-dd”的格式输入一个日期:");
//系统提示输入范围
Scanner input = new Scanner(System.in);
String num = input.nextLine();
//初始化接收键盘输入的scanner变量,并转化为字符串
sop(theDay(num));
input.close();
}
public static String theDay(String time)
//输入“yyyy-MM-dd”的格式日期,计算星期几、一年中的第几天
{
String[] s_arr = time.split("-");
//提取字符串中数值
Integer[] I_arr = new Integer[3];
for (int i = 0;i<I_arr.length ;i++ )
{
I_arr[i] = Integer.parseInt(s_arr[i]);
}
//将字符串数组转化为Integer数组
Calendar date = Calendar.getInstance();
//获取一个Calendar对象
date.set(I_arr[0],I_arr[1],I_arr[2]);
String[] week = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
//查表法获取星期,因为get(Calendar.DAY_OF_WEEK)返回值是1~7,
//为了对应角标,星期表中用空字符串填充0角标元素
int index = date.get(Calendar.DAY_OF_WEEK);
//获取星期角标
int day = date.get(Calendar.DAY_OF_YEAR);
//获取目标日期在当年的天数
String str = time+"是"+week[index]+" 当年第"+day+"天";
return str;
}
public static void sop(Object t)
//打印功能
{
System.out.println(t);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2