以下是我个人参考别人的代码进行修改的程序,感觉还有点冗余,请高手们对我的代码进行修改,能尽量缩减就尽量,谢谢!
按照提问的要求,还有就是能否在比较深奥的代码后面加上注释,方便本人理解。
如果直接按回车键,就提示用户将输出当天是星期几,并输出当天星期几。
谢谢各位!import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.io.*;public class ShowDay
{
Date now=new Date();
public static void main(String[] args) throws IOException
{
System.out.println("请输入一个日期以判断这一天是星期几,例如:20070809。");
System.out.println("不输入直接按Enter键则判断当日为星期几:");
BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );
String dates = cin.readLine();
DateFormat df = new SimpleDateFormat("yyyyMMdd");//日期格式化辅助类
Date d;
try
{
d = df.parse(dates);//格式化日期
String dateStr=(d.getYear()+1900)+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日";
switch(d.getDay())
{
case '1':
System.out.println("日期:[" + dateStr + "] 是星期一。");
case '2':
System.out.println("日期:[" + dateStr + "] 是星期二。");
case '3':
System.out.println("日期:[" + dateStr + "] 是星期三。");
case '4':
System.out.println("日期:[" + dateStr + "] 是星期四。");
case '5':
System.out.println("日期:[" + dateStr + "] 是星期五。");
case '6':
System.out.println("日期:[" + dateStr + "] 是星期六。");
default:
System.out.println("日期:[" + dateStr + "] 是星期日。");
}
}
catch (ParseException e)
{
e.printStackTrace();
}
}
}
按照提问的要求,还有就是能否在比较深奥的代码后面加上注释,方便本人理解。
如果直接按回车键,就提示用户将输出当天是星期几,并输出当天星期几。
谢谢各位!import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.io.*;public class ShowDay
{
Date now=new Date();
public static void main(String[] args) throws IOException
{
System.out.println("请输入一个日期以判断这一天是星期几,例如:20070809。");
System.out.println("不输入直接按Enter键则判断当日为星期几:");
BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );
String dates = cin.readLine();
DateFormat df = new SimpleDateFormat("yyyyMMdd");//日期格式化辅助类
Date d;
try
{
d = df.parse(dates);//格式化日期
String dateStr=(d.getYear()+1900)+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日";
switch(d.getDay())
{
case '1':
System.out.println("日期:[" + dateStr + "] 是星期一。");
case '2':
System.out.println("日期:[" + dateStr + "] 是星期二。");
case '3':
System.out.println("日期:[" + dateStr + "] 是星期三。");
case '4':
System.out.println("日期:[" + dateStr + "] 是星期四。");
case '5':
System.out.println("日期:[" + dateStr + "] 是星期五。");
case '6':
System.out.println("日期:[" + dateStr + "] 是星期六。");
default:
System.out.println("日期:[" + dateStr + "] 是星期日。");
}
}
catch (ParseException e)
{
e.printStackTrace();
}
}
}
解决方案 »
- QQ通讯原理,以及怎么获取QQ好友ip地址!
- Jdbc 中rs.findColumn("物质"),支持中文查找怎么实现? 急
- JButton
- Java的环境变量配置问题(新人问题)
- 我写的一个测试数据库连接的函数出现missing返回值问题
- 急救!连接sql server数据库总是出现Connection reset错误
- Java如果定时向网页提交数据的程序?
- 请问如何使一个JTextField灰化
- 我在用rmic时,总是出现类不存在。应该怎么办?
- 誰有SilverStream的中文資料,或哪有下載,謝謝.
- 看了 加我qq通知 立马给分
- (学知识的问题.....)如何用JAVA代码类生成创建一个数据库?
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.io.*; public class ShowDay
{
public static void main(String[] args) throws IOException
{
String[] str ={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
System.out.println("请输入一个日期以判断这一天是星期几,例如:20070809。");
System.out.println("不输入直接按Enter键则判断当日为星期几:");
BufferedReader cin = new BufferedReader( new InputStreamReader( System.in ) );
String dates = cin.readLine();
Date d=null;
DateFormat df = new SimpleDateFormat("yyyyMMdd");//日期格式化辅助类
if(dates.equals("")){
d=new Date(); //如果输入为空,就取今天日期
}
else{
try{
d = df.parse(dates);//格式化日期
}catch(ParseException e){
e.printStackTrace();
}
}
String dateStr=(d.getYear()+1900)+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日";
System.out.println(d.getDay());
for(int i=0;i<str.length;i++){
if(d.getDay()==(i)) //根据取出来的数判断取数组下标
{
System.out.println("日期:[" + dateStr + "] 是"+str[i]);
}
}
}
}
import java.util.*;
public class ShowDay
{
public static void main(String[] args) throws Exception
{
String[] str ={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
System.out.println("请输入一个日期以判断这一天是星期几,例如:20070809。");
System.out.println("不输入直接按Enter键则判断当日为星期几:");
Scanner s=new Scanner(System.in);
String dates=s.nextLine();
Date d=null;
DateFormat df = new SimpleDateFormat("yyyyMMdd");//日期格式化辅助类
if(dates.equals("")){
d=new Date(); //如果输入为空,就取今天日期
}
else{
d=df.parse(dates);//格式化日期
}
String dateStr=(d.getYear()+1900)+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日";
for(int i=0;i<str.length;i++){
if(d.getDay()==(i)) //根据取出来的数判断取数组下标
{
System.out.println("日期:[" + dateStr + "] 是"+str[i]);
}
}
}
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);//设置日期
System.out.println(cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.CHINESE));//十二月
System.out.println(cal.getDisplayName(Calendar.MONTH, Calendar.SHORT, Locale.US));//Dec String dateStr=(d.getYear()+1900)+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日";
//换成
new SimpleDateFormat("yyyy年MM月dd日").format(date);//
好不好?
3楼,谢谢你的批评!用你这个方法似乎更简便些,可我不知道如何应在程序里,可否给点提示?我不知道还有个插入源代码的设置,给你们造成诸多不便。谢谢!
第二次的代码,因为需要JDK1.5以上,所以没办法运行。不过还是谢谢你!
我想过了,如果还要将一个或多个空格过滤掉并通知用户再次输入的话,
也要将字母,特殊符号,以及日期的正确表示等都处理好。很显然,我现在水平还没达到。
所以,默认用户输入正确的日期或者按回车键。
个人也觉得DateStr这个字符串实在太冗长了,可就是想不到办法解决!
请大家多多帮忙!在此谢过!
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;public class CalendarTest { public static void main(String[] args) {
boolean b = true;
while(b) {
System.out.println("请输入一个日期以判断这一天是星期几,例如:20070809。");
System.out.print("不输入直接按Enter键则判断当日为星期几:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
String dateStr = br.readLine();
Date date = null;
SimpleDateFormat sdf = null;
if(dateStr.trim().length() != 0) {
sdf = new SimpleDateFormat("yyyyMMdd");
date = sdf.parse(dateStr);
}else{
date = new Date();
}
b = false;
sdf = new SimpleDateFormat("\n日期:[yyyy年MM月dd日]是EEEE", Locale.CHINESE);
System.out.println(sdf.format(date));
} catch (IOException e) {
System.out.println("\nERROR: 数据读取错误,请重新输入...");
} catch (ParseException e) {
System.out.println("\nERROR: 输入的日期格式不正确,应为:yyyyMMdd,请重新输入...");
}
}
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.io.*;
import java.util.Calendar;public class ShowDayTest1
{
public static void main(String[] args) throws IOException
{
String[] str ={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
System.out.println("请输入一个日期以判断这一天是星期几,例如:20070809。");
System.out.println("不输入直接按Enter键则判断当日为星期几:");
BufferedReader cin=new BufferedReader(new InputStreamReader(System.in));
String dates=cin.readLine();
Date d=null;
DateFormat df=new SimpleDateFormat("yyyyMMdd");//日期格式化辅助类
if(dates.equals("")){
d=new Date(); //如果输入为空,就取今天日期
}
else{
try{
d = df.parse(dates);//格式化日期
}catch(ParseException e){
e.printStackTrace();
}
}
//获取当前时间日期
//String date=new SimpleDateFormat("yyyy年MM月dd日").format(Calendar.getInstance().getTime());
//System.out.println(date);
String dateStr=new SimpleDateFormat("yyyy年MM月dd日").format(d);
for(int i=0;i<str.length;i++){
if(d.getDay()==(i)) //根据取出来的数判断取数组下标
{
System.out.println("日期:["+dateStr+"]是"+str[i]);
}
}
}
}
多谢二位!
把:
sdf = new SimpleDateFormat("\n日期:[yyyy年MM月dd日]是EEEE", Locale.CHINESE);
System.out.println(sdf.format(date));
换成,省得使用SimpleDateFormat了,不仅支持Date,还支持Calendar
System.out.printf(Locale.CHINESE, "%n日期:[%tY年%<tm月%<td日]是%<tA%n", date);
多谢以上三位!我结帖后再自己研究。