本人写了一个程序如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%
//Date类的引用
java.util.Date dt=new java.util.Date();
//获取年份
int year=dt.getYear();
year+=1900;
//获取月份
int month=dt.getMonth();
//获取日期
int date=dt.getDate();
//获取星期
int day=dt.getDay();
//将int型转换String
String str_year=String.valueOf(year);
String str_month=String.valueOf(month);
String str_day=String.valueOf(day);
//将月份和日期统一成二位整型
if(str_month.length()==1)
{
str_month="0"+str_month;
}String str_date=String.valueOf(date);
{
str_date="0"+str_date;
}//将获取的系统时间拼成字符串
String str_i=str_year+str_month+str_date+str_day;
String chi_num="";
String chi_num_total="";
char cha_i=' ';
String chi_year=null;
String chi_month=null;
String chi_date=null;
String chi_day=null;
//用For循环和switch语句获取中文时间信息
for(int j=0; j<str_i.length(); j++)
{
cha_i = str_i.charAt(j);
switch(cha_i)
{
case'0':chi_num="零";
break;
case'1':chi_num="一";
break;
case'2':chi_num="二";
break;
case'3':chi_num="三";
break;
case'4':chi_num="四";
break;
case'5':chi_num="五";
break;
case'6':chi_num="六";
break;
case'7':chi_num="七";
break;
case'8':chi_num="八";
break;
case'9':chi_num="九";
break;
}
chi_num_total+=chi_num;
if(j==3)
{
chi_year=chi_num_total;
chi_num_total="";
}
if((j==4)||(j==6))
{
if((cha_i=='1')||(cha_i=='0'))
{
chi_num_total="";
}
if(cha_i!='0')
{
chi_num_total+="十";
}
}
if(j==5)
{
chi_month=chi_num_total;
chi_num_total="";
}
if(j==7)
{
chi_date=chi_num_total;
chi_num_total="";
}
if(j==8)
{
if(cha_i=='0')
{
chi_num_total="日";
}
chi_day=chi_num_total;
}
}//得到最终结果
String chi_dt="今天是"+chi_year+"年"+chi_month+"月"+chi_date+"日"+"星期"+chi_day;
%>
<!-- 显示结果 -->
<%=chi_dt%>在网页上浏览时显示:今天是二零零九年四月三日星期日。这和真实日期不符,还请前辈指导。希望哪个高手再帮我注释一下里面if循环,小弟有些地方看不懂。谢谢了!!!
<%@ page contentType="text/html; charset=gb2312"%>
<%
//Date类的引用
java.util.Date dt=new java.util.Date();
//获取年份
int year=dt.getYear();
year+=1900;
//获取月份
int month=dt.getMonth();
//获取日期
int date=dt.getDate();
//获取星期
int day=dt.getDay();
//将int型转换String
String str_year=String.valueOf(year);
String str_month=String.valueOf(month);
String str_day=String.valueOf(day);
//将月份和日期统一成二位整型
if(str_month.length()==1)
{
str_month="0"+str_month;
}String str_date=String.valueOf(date);
{
str_date="0"+str_date;
}//将获取的系统时间拼成字符串
String str_i=str_year+str_month+str_date+str_day;
String chi_num="";
String chi_num_total="";
char cha_i=' ';
String chi_year=null;
String chi_month=null;
String chi_date=null;
String chi_day=null;
//用For循环和switch语句获取中文时间信息
for(int j=0; j<str_i.length(); j++)
{
cha_i = str_i.charAt(j);
switch(cha_i)
{
case'0':chi_num="零";
break;
case'1':chi_num="一";
break;
case'2':chi_num="二";
break;
case'3':chi_num="三";
break;
case'4':chi_num="四";
break;
case'5':chi_num="五";
break;
case'6':chi_num="六";
break;
case'7':chi_num="七";
break;
case'8':chi_num="八";
break;
case'9':chi_num="九";
break;
}
chi_num_total+=chi_num;
if(j==3)
{
chi_year=chi_num_total;
chi_num_total="";
}
if((j==4)||(j==6))
{
if((cha_i=='1')||(cha_i=='0'))
{
chi_num_total="";
}
if(cha_i!='0')
{
chi_num_total+="十";
}
}
if(j==5)
{
chi_month=chi_num_total;
chi_num_total="";
}
if(j==7)
{
chi_date=chi_num_total;
chi_num_total="";
}
if(j==8)
{
if(cha_i=='0')
{
chi_num_total="日";
}
chi_day=chi_num_total;
}
}//得到最终结果
String chi_dt="今天是"+chi_year+"年"+chi_month+"月"+chi_date+"日"+"星期"+chi_day;
%>
<!-- 显示结果 -->
<%=chi_dt%>在网页上浏览时显示:今天是二零零九年四月三日星期日。这和真实日期不符,还请前辈指导。希望哪个高手再帮我注释一下里面if循环,小弟有些地方看不懂。谢谢了!!!
<%@ page contentType="text/html; charset=gb2312"%>
<%
//Date类的引用
java.util.Date dt=new java.util.Date();
//获取年份
int year=dt.getYear();
year+=1900;
//获取月份
int month=dt.getMonth();
month+=1;
//获取日期
int date=dt.getDate();
//获取星期
int day=dt.getDay();
//将int型转换String
String str_year=String.valueOf(year);
String str_month=String.valueOf(month);
String str_day=String.valueOf(day);
//将月份和日期统一成二位整型
if(str_month.length()==1)
{
str_month="0"+str_month; } String str_date=String.valueOf(date);
if(str_date.length()==1)
{
str_date="0"+str_date;
} //将获取的系统时间拼成字符串
String str_i=str_year+str_month+str_date+str_day;
out.print(str_i+"<br>");String chi_num="";
String chi_num_total="";
char cha_i=' '; String chi_year=null;
String chi_month=null;
String chi_date=null;
String chi_day=null;
//用For循环和switch语句获取中文时间信息
for(int j=0; j <str_i.length(); j++)
{
cha_i = str_i.charAt(j);
switch(cha_i)
{
case'0':chi_num="零";
break;
case'1':chi_num="一";
break;
case'2':chi_num="二";
break;
case'3':chi_num="三";
break;
case'4':chi_num="四";
break;
case'5':chi_num="五";
break;
case'6':chi_num="六";
break;
case'7':chi_num="七";
break;
case'8':chi_num="八";
break;
case'9':chi_num="九";
break; } chi_num_total+=chi_num;
//年份的表示
if(j==3)
{
chi_year=chi_num_total;
chi_num_total="";
} //处理月份和天数的第一位数
if((j==4)||(j==6)) {
//如果第一位数是0,就不显示零几月/日(比如零一),而直接显示几月/日
//如果第一位数是1,就不显示一十几月/日(比如一十二),而直接显示十几月/日
if((cha_i=='1')||(cha_i=='0')){
chi_num_total="";
}
//如果月份是11,12,就得显示十一月/十二月
//如果天数大于19,就得显示二十/三十几日(下面解决了十/二十/三十日的显示)
if(cha_i!='0') {
//十月/十日和其他的
chi_num_total+="十";
}
} //月份的表示(月份的第二位数)
if(j==5) {
//这块是去掉那个零的操作
if(cha_i=='0'){
chi_month=chi_num_total.substring(0,chi_num_total.length()-1);
}else{
chi_month=chi_num_total;
}
chi_num_total="";
} //日期的表示(天数的第二位数)
if(j==7) {
//这块是去掉那个零的操作
if(cha_i=='0'){
chi_date=chi_num_total.substring(0,chi_num_total.length()-1);
}else{
chi_date=chi_num_total;
}
chi_num_total="";
}
//星期的显示
if(j==8)
{
//如果是星期日,星期日是用0表示的
if(cha_i=='0')
{
chi_num_total="日";
}
chi_day=chi_num_total; }
} //得到最终结果
String chi_dt="今天是"+chi_year+"年"+chi_month+"月"+chi_date+"日"+"星期"+chi_day;
%>
<!-- 显示结果 -->
<%=chi_dt%> 建议在java类里面直接做好,然后在jsp页面直接调用就可以,这样有点繁琐!
lz看看,自己再梳理一下!
LZ,你的那个零,壹....玖,最好不要用switch,建议用数组 String[] dataString={"零","壹",......"玖"};