随笔 - 154  文章 - 60  trackbacks - 0
<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

声明:

该blog是为了收集资料,认识朋友,学习、提高技术,所以本blog的内容除非声明,否则一律为转载!!

感谢那些公开自己技术成果的高人们!!!

支持开源,尊重他人的劳动!!

常用链接

留言簿(3)

随笔分类(148)

随笔档案(143)

收藏夹(2)

其他

学习(技术)

观察思考(非技术)

搜索

  •  

最新评论

阅读排行榜

评论排行榜

文件名 year.jsp
<%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*" %> 
<%@ page import="java.util.*,java.io.*,java.text.*"%> 
<% 
/**
 *原文:
http://topic.csdn.net/t/20031201/19/2515519.html
 * LK 整理 版
 
*/

//世纪万年历 
//农历每月的天数 
int everymonth[][]={
  
{8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1}
  
{0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2}
  
{0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3}
  
{5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4}
  
{0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5}
  
{0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6}
  
{4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7}
  
{0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8}
  
{0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9}
  
{2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10}
  
{0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11}
  
{6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12}
  
{0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1}
  
{0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2}
  
{5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3}
  
{0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4}
  
{0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5}
  
{2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6}
  
{0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7}
  
{7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8}
  
{0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9}
  
{0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10}
  
{5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11}
  
{0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12}
  
{0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1}
  
{4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2}
  
{0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3}
  
{0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4}
  
{2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5}
  
{0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6}
  
{6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7}
  
{0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8}
  
{0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9}
  
{5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10}
  
{0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11}
  
{0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12}
  
{3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1}
  
{0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2}
  
{7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3}
  
{0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4}
  
{0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5}
  
{6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6}
  
{0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7}
  
{0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8}
  
{4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9}
  
{0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10}
  
{0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11}
  
{2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12}
  
{0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1}
  
{7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2}
  
{0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3}
  
{0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4}
  
{5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5}
  
{0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6}
  
{0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7}
  
{3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8}
  
{0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9}
  
{8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10}
  
{0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11}
  
{0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12}
  
{6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1}
  
{0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2}
  
{0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3}
  
{4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4}
  
{0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5}
  
{0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6}
  
{3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7}
  
{0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8}
  
{7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9}
  
{0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10}
  
{0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11}
  
{5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12}
  
{0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1}
  
{0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2}
  
{4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3}
  
{0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4}
  
{8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5}
  
{0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6}
  
{0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7}
  
{6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8}
  
{0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9}
  
{0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10}
  
{4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11}
  
{0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12}
  
{10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1}
  
{0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2}
  
{0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3}
  
{6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4}
  
{0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5}
  
{0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6}
  
{5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7}
  
{0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8}
  
{0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9}
  
{3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10}
  
{0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11}
  
{8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12}
  
{0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1}
  
{0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2}
  
{5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3}
  
{0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4}
  
{0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5}
  
{4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6}
  
{0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7}
  
{0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8}
  
{2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9}
  
{0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10}
  
{7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11}
  
{0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12}
  
{0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1}
  
{5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2}
  
{0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3}
  
{0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4}
  
{4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5}
  
{0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6}
  
{9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7}
  
{0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8}
  
{0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9}
  
{6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10}
  
{0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11}
  
{0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12}
  
{4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1}
}
;

//农历天干 
String[] mten={"null","","","","","","","","","",""};
//农历地支 
String[] mtwelve={"null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)"
                
"巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)"}
;
//农历月份 
String[] mmonth={"","","","","","",""
                
"","","","","十一","十二",""}
;
//农历日 
String[] mday={"null","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十"
              
"十一","十二","十三","十四","十五","十六","十七","十八","十九","二十"
              
"廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十"}
;

//赋给初值 
//天干地支 
int ten=0;
int twelve=0;
//星期 
int week=5;
//农历日 
int md=0;
//农历月 
int mm=0;
//阳历总天数 至1900年12月21日 
int total=11;
//阴历总天数   
int mtotal=0;  

//获得当日日期   
//today=getdate();  

GregorianCalendar today 
= new GregorianCalendar();
//如果没有输入,设为当日日期   
String s_year=null,s_month=null;
s_year
=request.getParameter("year");
s_month
=request.getParameter("month");
int year,month;  
if(s_year==null){
    year 
= today.get(Calendar.YEAR);
    month 
= today.get(Calendar.MONTH);
}
else{
    year
=Integer.valueOf(s_year).intValue();
    month
=Integer.valueOf(s_month).intValue();
    month
=month-1;
}


//计算到所求日期阳历的总天数-自1900年12月21日始 
//先算年的和 

for(int y=1901;y<year;y++){
    total
+=365;
    
if(y%4==0)total ++;
}

//再加当年的几个月 
switch(month){
    
case 11
      total
+=30;
    
case 10
      total
+=31;
    
case 9
      total
+=30;
    
case 8
      total
+=31;
    
case 7
      total
+=31;
    
case 6
      total
+=30;
    
case 5
      total
+=31;
    
case 4
      total
+=30;
    
case 3
      total
+=31;
    
case 2
      total
+=28;
    
case 1
      total
+=31;
}

//如果当年是闰年还要加一天 
if(year%4==0 && month>1){
    total
++;
}

//顺便算出当月1日星期几 
today.set(year,month,1);
week
=today.get(Calendar.DAY_OF_WEEK);

//用农历的天数累加来判断是否超过阳历的天数 
int flag1=0;//判断跳出循环的条件 
int j=0,i=1;  
while(j<=120){
    i
=1;
    
while(i<=13){
        mtotal
+=everymonth[j][i];
        
if(mtotal>=total){
            flag1
=1;
            
break;
        }

        i
++;
    }

    
if(flag1==1)break;
    j
++;
}


//计算所求月份1号的农历日期 
md=everymonth[j][i]-(mtotal-total);
//月头空开的天数 
int k=week-1;
//是否跨越一年 
int dd=0;
switch(month){
    
case 0
    
case 2
    
case 4
    
case 6
    
case 7
    
case 9
    
case 11
      dd
=31;
      
break;
    
case 3
    
case 5
    
case 8
    
case 10
      dd
=30;
      
break;
    
case 1
      
if(year%4==0){
          dd
=29;
        }
else{
          dd
=28;
        }

      
break;
}

//是否跨越一年 
int ty=0;  
if(((everymonth[j][0]!=0 && i==13)||(everymonth[j][0]==0 && i==12))&&((mtotal-total)<dd))ty=1;
%>

<html> 
    
<head> 
        
<title>jsp万年历</title> 
        
<style type="text/css"> 
        
<!-- 
        input 
{font-size:9pt;}
        A:link 
{text-decoration: underline;font-size:9pt;color:000059}
        A:visited 
{text-decoration: underline;font-size:9pt;color:000059}
        A:active 
{text-decoration: none;font-size:9pt}
        A:hover 
{text-decoration:underline;color:red}
        body,table 
{font-size: 9pt}
        tr,td
{font-size:9pt}
        
--> 
        
</style> 
    
</head> 
<body alink="#FF0000" link="#000099" vlink="#CC6600" topmargin="8" leftmargin="0" bgcolor="#F0F6E2"> 
<table width=640 bgcolor="#F0F6E2"><tr><td > 
<% 
//打印年月抬头 
out.println("<div align=\"center\"><b><font size=\"2\">"+year+""+(month+1)+"月</font></b> ");
if(ty==0){
out.println(
" <b><font size=\"2\">"+mten[everymonth[j][14]]+mtwelve[everymonth[j][15]]+"年</font></b> ");
}
else{
out.println(
" <b><font size=\"2\">"+mten[everymonth[j][14]]+mtwelve[everymonth[j][15]]+"/"+mten[everymonth[j+1][14]]+mtwelve[everymonth[j+1][15]]+"年</font></b></div>");
}

out.println(
"<form method=\"POST\" action=\"year.jsp\">");
//打印上一月,下一月 
int ly,ny;
ly
=year;
ny
=year;
int last=month;  
if(last==0){
    last
=12;
    ly
--;
}

int next=month+1;
if(next==12){
    next
=0;
    ny
++;
}

if(ly>1900)
    out.println(
" <div align='center'> <a href=\"year.jsp?year="+ly+"&month="+last+"\">&lt;&lt;上一个月</a>&nbsp;&nbsp;&nbsp;");
if(ny<=2020)
    out.println(
"<a href=\"year.jsp?year="+ny+"&month="+(next+1)+"\">下一个月&gt;&gt;</a> ");
%> 
&nbsp;&nbsp;
  
<font color="#000000">年份: 
  
<select name="year" onChange=""> 
<% 
int ii;
for(ii=2020;ii>=1901;ii--){
%> 
    
<option value="<%=ii%>" <%if(ii==year)out.println("selected");%>> 
    
<%out.println(ii);%> 
    
</option> 
<% 
}

%> 
  
</select> 
  
</font><font color="#000000"></font><font color="#000000">&nbsp;&nbsp;
  月份:   
  
<select name="month" onChange=""> 
<% 
for(ii=1;ii<=12;ii++){
%> 
<option value="<%=ii%>" <%if(ii==month+1)out.println("selected");%>><%out.println(ii);%></option> 
<% 
}

%> 
  
</select> 
  月
&nbsp;&nbsp;  </font> 
  
<input type="submit" value="查询" name="B1"> 
  
</p> 
</form> 
</td></td></table> 
<div align="left"> 
<left> 
<table border="0" width="640"> 
<tr> 
  
<td align="center" bgcolor="#004F8F"><font color="#ffffff"><b>星期日</b></font></td> 
  
<td width="14%" align="center" bgcolor="#004F8F"><font color="#ffffff"><b>星期一</b></font></td> 
  
<td width="14%" align="center" bgcolor="#004F8F"><font color="#ffffff"><b>星期二</b></font></td> 
  
<td width="14%" align="center" bgcolor="#004F8F"><font color="#ffffff"><b>星期三</b></font></td> 
  
<td width="14%" align="center" bgcolor="#004F8F"><font color="#ffffff"><b>星期四</b></font></td> 
  
<td width="14%" align="center" bgcolor="#004F8F"><font color="#ffffff"><b>星期五</b></font></td> 
  
<td width="14%" align="center" bgcolor="#004F8F"><font color="#ffffff"><b>星期六</b></font></td> 
</tr> 
<% 
int day=1;
int line=0;
int s;
String color
="#000000";
//while(day<=dd){

while(today.get(Calendar.MONTH)==month){
    out.println(
"<tr>");
    
    
//for(int jii=Calendar.SUNDAY;jii < week;jii++)
    
//   out.println("<td width=\"14%\" align=\"center\" bgcolor=\"#EEEDDB\"> </td>");
    
    
for(s=1;s<=7;s++){
        
if(k!=0||day>dd){
            out.println(
"<td width=\"14%\" align=\"center\" bgcolor=\"#EEEDDB\"> </td>");
            k
--;
        }
else{
            
//设置字符颜色 
            switch(s){
                
case 6
                
case 2
                
case 3
                
case 4
                
case 5
                color
="#000000";
                
break;
                
case 1
                color
="#FF0000";
                
break;
                
case 7
                color
="#008000";
                
break;
            }

            
//生成中文农历 
            String chi;  
            
if(md==1){//1日打印月份   
                if(everymonth[j][0]!=0 && everymonth[j][0]<i)
                    mm
=i-1;
                
else
                    mm
=i;
                
                
if(i==everymonth[j][0]+1 && everymonth[j][0]!=0)
                    chi
=mmonth[0]+mmonth[mm];//闰月 
                else   
                    chi
=mmonth[mm]+mmonth[13];
            }
else{
                chi
=mday[md];
            }

            out.println(
"<td width=\"14%\" align=\"center\" bgcolor=\"#EEEDDB\" ><a href=\"rcb_body.jsp?year="+year+"&month="+(month+1)+"&day="+day+"\"   target=main><font color=\""+color+"\"><b>"+day+" </b> <b><font size=\"2\">"+chi+"</font></b></font></a></td>");
            day
++;
            today.add(Calendar.DAY_OF_MONTH,
1);
            
//day=today.get(Calendar.DAY_OF_MONTH);
            md++;
            
if(md>everymonth[j][i]){
                md
=1;
                i
++;
            }

            
if((i>12 && everymonth[j][0]==0)||(i>13 && everymonth[j][0]!=0)){
                i
=1;
                j
++;
            }

        }

    }

    out.println(
"</tr>");
    line
++;
}

%> 
</table> 
</left> 
</div> 
<table width=640><tr><td height="20"> 
<% 
//补足空行
for(int l=1;l<=(6-line);l++){
  out.println(
"<table border=\"0\" width=\"100%\">");
  out.println(
"<tr>");
  out.println(
"<td width=\"100%\"><font color=\"#CCFFFF\"></font></td>");
  out.println(
"</tr>");
  out.println(
"</table>");
}

%> 
</td></tr> 
</table>   
</body> 
</html>
posted on 2008-02-19 14:28 lk 阅读(647) 评论(0)  编辑  收藏 所属分类: j2ee

只有注册用户登录后才能发表评论。


网站导航: