* @param args
*/
public static void main(String[] args) {
System.out.println("******************欢 迎 使 用 万 年 历******************")
Scanner input = new Scanner(System.in)
System.out.print("\n请选择年份: ")
int year = input.nextInt()
System.out.print("\n请选择月份: ")
int month = input.nextInt()
System.out.println() int days = 0// 存储当月的天数
boolean isRn
/* 判断是否是闰年 */
if (year % 4 == 0 &&!(year % 100 == 0) || year % 400 == 0) { // 判断是否为闰年
isRn = true// 闰年
} else {
isRn = false// 平年
} /* 计算输入的年份之前的天数 */
int totalDays = 0
for (int i = 1900i <yeari++) {
/* 判断闰年或平年,并进行天数累加 */
if (i % 4 == 0 &&!(i % 100 == 0) || i % 400 == 0) { // 判断是否为闰年
totalDays = totalDays + 366// 闰年366天
} else {
totalDays = totalDays + 365// 平年365天
}
} /* 计算输入月份之前的天数 */
int beforeDays = 0
for (int i = 1i <= monthi++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31
break
case 2:
if (isRn) {
days = 29
} else {
days = 28
}
break
default:
days = 30
break
}
if (i <month) {
beforeDays = beforeDays + days
}
}
totalDays = totalDays + beforeDays// 距离1900年1月1日的天数 /* 计算星期几 */
int firstDayOfMonth// 存储当月第一天是星期几:星期日为0,星期一~星期六为1~6
int temp = 1 + totalDays % 7// 从1900年1月1日推算
if (temp == 7) { //橡帆镇 求当月第一天
firstDayOfMonth = 0// 周日
} else {
firstDayOfMonth = temp
} /* 输出日历 */
System.out.println("星期日\t星期一\t星期二梁粗\t星期三\t星期四\t星期五\t星期六")
for (int nullNo = 0nullNo <firstDayOfMonthnullNo++) {
System.out.print("轿旁\t")// 输出空格
}
for (int i = 1i <= daysi++) {
System.out.print(i + "\t")
if ((totalDays + i - 1) % 7 == 5) { // 如果当天为周六,输出换行
System.out.println()
}
}
}
}
http://netroom.hbu.edu.cn/personal/wenyuxuan/yan/yantime011.htm(把代码复制到一个新空白网页中即可,别看演示,演示的代码不对)
代码如下:
<SCRIPT language=JavaScript>
<!--
/*****************************************************************************
日期乱埋资料
*****************************************************************************/
var lunarInfo=new Array(
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,
0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,
0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0)
var solarMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31)
var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸")
var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")
var Animals=new Array("鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪")
var solarTerm = new Array("小寒","大寒","立春","雨水","惊蛰尘陪裂","春分","清明","谷雨","立夏","小满","芒种","夏派闭至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至")
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)
var nStr1 = new Array('日','一','二','三','四','五','六','七','八','九','十')
var nStr2 = new Array('初','十','廿','卅',' ')
var monthName = new Array("JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC")
//国历节日 *表示放假日
var sFtv = new Array(
"0101*元旦",
"0214 情人节",
"0308 妇女节",
"0312 植树节",
"0315 消费者权益日",
"0317 St. Patrick's",
"0401 愚人节",
"0501 劳动节",
"0504 青年节",
"0512 护士节",
"0512 茵生日",
"0601 儿童节",
"0614 Flag Day",
"0701 建党节 香港回归纪念",
"0703 炎黄在线诞辰",
"0718 托普诞辰",
"0801 建军节",
"0808 父亲节",
"0909 毛泽东逝世纪念",
"0910 教师节",
"0928 孔子诞辰",
"1001*国庆节",
"1006 老人节",
"1024 联合国日",
"1111 Veteran's / Remembrance Day",
"1112 孙中山诞辰纪念",
"1220 澳门回归纪念",
"1225 Christmas Day",
"1226 毛泽东诞辰纪念")
//农历节日 *表示放假日
var lFtv = new Array(
"0101*春节",
"0115 元宵节",
"0328 我生日",
"0505 端午节",
"0707 七夕情人节",
"0715 中元节",
"0815 中秋节",
"0909 重阳节",
"1208 腊八节",
"1224 小年",
"0100*除夕")
//某月的第几个星期几
var wFtv = new Array(
"0131 Martin Luther King Day",
"0231 President's Day",
"0520 母亲节",
"0530 Armed Forces Day",
"0531 Victoria Day",
"0716 合作节",
"0730 被奴役国家周",
"0811 Civic Holiday",
"0911 Labor Holiday",
"1021 Columbus Day",
"1144 Thanksgiving")
/*****************************************************************************
日期计算
*****************************************************************************/
//====================================== 传回农历 y年的总天数
function lYearDays(y) {
var i, sum = 348
for(i=0x8000i>0x8i>>=1) sum += (lunarInfo[y-1900] &i)? 1: 0
return(sum+leapDays(y))
}
//====================================== 传回农历 y年闰月的天数
function leapDays(y) {
if(leapMonth(y)) return((lunarInfo[y-1900] &0x10000)? 30: 29)
else return(0)
}
//====================================== 传回农历 y年闰哪个月 1-12 , 没闰传回 0
function leapMonth(y) {
return(lunarInfo[y-1900] &0xf)
}
//====================================== 传回农历 y年m月的总天数
function monthDays(y,m) {
return( (lunarInfo[y-1900] &(0x10000>>m))? 30: 29 )
}
//====================================== 算出农历, 传入日期物件, 传回农历日期物件
// 该物件属性有 .year .month .day .isLeap .yearCyl .dayCyl .monCyl
function Lunar(objDate) {
var i, leap=0, temp=0
var baseDate = new Date(1900,0,31)
var offset = (objDate - baseDate)/86400000
this.dayCyl = offset + 40
this.monCyl = 14
for(i=1900i<2050 &&offset>0i++) {
temp = lYearDays(i)
offset -= temp
this.monCyl += 12
}
if(offset<0) {
offset += temp
i--
this.monCyl -= 12
}
this.year = i
this.yearCyl = i-1864
leap = leapMonth(i) //闰哪个月
this.isLeap = false
for(i=1i<13 &&offset>0i++) {
//闰月
if(leap>0 &&i==(leap+1) &&this.isLeap==false)
{ --ithis.isLeap = truetemp = leapDays(this.year)}
else
{ temp = monthDays(this.year, i)}
//解除闰月
if(this.isLeap==true &&i==(leap+1)) this.isLeap = false
offset -= temp
if(this.isLeap == false) this.monCyl ++
}
if(offset==0 &&leap>0 &&i==leap+1)
if(this.isLeap)
{ this.isLeap = false}
else
{ this.isLeap = true--i--this.monCyl}
if(offset<0){ offset += temp--i--this.monCyl}
this.month = i
this.day = offset + 1
}
//==============================传回国历 y年某m+1月的天数
function solarDays(y,m) {
if(m==1)
return(((y%4 == 0) &&(y%100 != 0) || (y%400 == 0))? 29: 28)
else
return(solarMonth[m])
}
//============================== 传入 offset 传回干支, 0=甲子
function cyclical(num) {
return(Gan[num%10]+Zhi[num%12])
}
//============================== 月历属性
function calElement(sYear,sMonth,sDay,week,lYear,lMonth,lDay,isLeap,cYear,cMonth,cDay) {
this.isToday= false
//国历
this.sYear = sYear
this.sMonth = sMonth
this.sDay = sDay
this.week = week
//农历
this.lYear = lYear
this.lMonth = lMonth
this.lDay = lDay
this.isLeap = isLeap
//干支
this.cYear = cYear
this.cMonth = cMonth
this.cDay = cDay
this.color = ''
this.lunarFestival = ''//农历节日
this.solarFestival = ''//国历节日
this.solarTerms= ''//节气
}
//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n) {
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )
return(offDate.getUTCDate())
}
//============================== 传回月历物件 (y年,m+1月)
function calendar(y,m) {
var sDObj, lDObj, lY, lM, lD=1, lL, lX=0, tmp1, tmp2
var lDPOS = new Array(3)
var n = 0
var firstLM = 0
sDObj = new Date(y,m,1)//当月一日日期
this.length= solarDays(y,m)//国历当月天数
this.firstWeek = sDObj.getDay()//国历当月1日星期几
for(var i=0i<this.lengthi++) {
if(lD>lX) {
sDObj = new Date(y,m,i+1)//当月一日日期
lDObj = new Lunar(sDObj) //农历
lY= lDObj.year //农历年
lM= lDObj.month //农历月
lD= lDObj.day//农历日
lL= lDObj.isLeap //农历是否闰月
lX= lL? leapDays(lY): monthDays(lY,lM) //农历当月最后一天
if(n==0) firstLM = lM
lDPOS[n++] = i-lD+1
}
//sYear,sMonth,sDay,week,
//lYear,lMonth,lDay,isLeap,
//cYear,cMonth,cDay
this[i] = new calElement(y, m+1, i+1, nStr1[(i+this.firstWeek)%7],
lY, lM, lD++, lL,
cyclical(lDObj.yearCyl) ,cyclical(lDObj.monCyl), cyclical(lDObj.dayCyl++) )
if((i+this.firstWeek)%7==0) this[i].color = 'red' //周日颜色
if((i+this.firstWeek)%14==13) this[i].color = 'red' //周休二日颜色
}
//节气
tmp1=sTerm(y,m*2 )-1
tmp2=sTerm(y,m*2+1)-1
this[tmp1].solarTerms = solarTerm[m*2]
this[tmp2].solarTerms = solarTerm[m*2+1]
if(m==3) this[tmp1].color = 'red' //清明颜色
//国历节日
for(i in sFtv)
if(sFtv[i].match(/^(\d{2})(\d{2})([\s\*])(.+)$/))
if(Number(RegExp.$1)==(m+1)) {
this[Number(RegExp.$2)-1].solarFestival += RegExp.$4 + ' '
if(RegExp.$3=='*') this[Number(RegExp.$2)-1].color = 'red'
}
//月周节日
for(i in wFtv)
if(wFtv[i].match(/^(\d{2})(\d)(\d)([\s\*])(.+)$/))
if(Number(RegExp.$1)==(m+1)) {
tmp1=Number(RegExp.$2)
tmp2=Number(RegExp.$3)
this[((this.firstWeek>tmp2)?7:0) + 7*(tmp1-1) + tmp2 - this.firstWeek].solarFestival += RegExp.$5 + ' '
}
//农历节日
for(i in lFtv)
if(lFtv[i].match(/^(\d{2})(.{2})([\s\*])(.+)$/)) {
tmp1=Number(RegExp.$1)-firstLM
if(tmp1==-11) tmp1=1
if(tmp1 >=0 &&tmp1<n) {
tmp2 = lDPOS[tmp1] + Number(RegExp.$2) -1
if( tmp2 >= 0 &&tmp2<this.length) {
this[tmp2].lunarFestival += RegExp.$4 + ' '
if(RegExp.$3=='*') this[tmp2].color = 'red'
}
}
}
//黑色星期五
if((this.firstWeek+12)%7==5)
this[12].solarFestival += '黑色星期五 '
//今日
if(y==tY &&m==tM) this[tD-1].isToday = true
}
//====================== 中文日期
function cDay(d){
var s
switch (d) {
case 10:
s = '初十'break
case 20:
s = '二十'break
break
case 30:
s = '三十'break
break
default :
s = nStr2[Math.floor(d/10)]
s += nStr1[d%10]
}
return(s)
}
///////////////////////////////////////////////////////////////////////////////
var cld
function drawCld(SY,SM) {
var i,sD,s,size
cld = new calendar(SY,SM)
if(SY>1874 &&SY<1909) yDisplay = '光绪' + (((SY-1874)==1)?'元':SY-1874)
if(SY>1908 &&SY<1912) yDisplay = '宣统' + (((SY-1908)==1)?'元':SY-1908)
if(SY>1911 &&SY<1950) yDisplay = '民国' + (((SY-1911)==1)?'元':SY-1911)
// if(SY>1949) yDisplay = '共和国' + (((SY-1949)==1)?'元':SY-1949)
// GZ.innerHTML = yDisplay +'年 农历' + cyclical(SY-1900+36) + '年 【'+Animals[(SY-4)%12]+'】'
if(SY>1949) yDisplay = ''
GZ.innerHTML = yDisplay +' 农历' + cyclical(SY-1900+36) + '年 【'+Animals[(SY-4)%12]+'】'
YMBG.innerHTML = " " + SY + "<BR> " + monthName[SM]
for(i=0i<42i++) {
sObj=eval('SD'+ i)
lObj=eval('LD'+ i)
sObj.className = ''
sD = i - cld.firstWeek
if(sD>-1 &&sD<cld.length) { //日期内
sObj.innerHTML = sD+1
if(cld[sD].isToday) sObj.className = 'todyaColor'//今日颜色
sObj.style.color = cld[sD].color//国定假日颜色
if(cld[sD].lDay==1) //显示农历月
lObj.innerHTML = '<b>'+(cld[sD].isLeap?'闰':'') + cld[sD].lMonth + '月' + (monthDays(cld[sD].lYear,cld[sD].lMonth)==29?'小':'大')+'</b>'
else //显示农历日
lObj.innerHTML = cDay(cld[sD].lDay)
s=cld[sD].lunarFestival
if(s.length>0) { //农历节日
if(s.length>6) s = s.substr(0, 4)+'…'
s = s.fontcolor('red')
}
else { //国历节日
s=cld[sD].solarFestival
if(s.length>0) {
size = (s.charCodeAt(0)>0 &&s.charCodeAt(0)<128)?8:4
if(s.length>size+2) s = s.substr(0, size)+'…'
s = s.fontcolor('blue')
}
else { //廿四节气
s=cld[sD].solarTerms
if(s.length>0) s = s.fontcolor('limegreen')
}
}
if(s.length>0) lObj.innerHTML = s
}
else { //非日期
sObj.innerHTML = ''
lObj.innerHTML = ''
}
}
}
function changeLong()
{
var y,m,ly,lm,id,im,iy,yangy,yangm,deltm,miny,tt
CLD.SY.selectedIndex=CLD.D1.selectedIndex
CLD.SM.selectedIndex=CLD.D2.selectedIndex
yangm=0yangy=0
tt=true
while (tt)
{
yangm=0yangy=0
changeCld()
for(i=0i<42i++)
{
sD = i - cld.firstWeek
if(sD>-1 &&sD<cld.length)
{ //日期内
if ((cld[sD].lMonth==CLD.D2.selectedIndex+1)&&(cld[sD].lYear==CLD.D1.selectedIndex+1900))
{
yangy=CLD.SY.selectedIndex+1900 yangm=CLD.SM.selectedIndex
tt=false
break
}
}
}
if (!tt) break
pushBtm('MD')
changeCld()
// alert(CLD.SY.selectedIndex+" "+CLD.SM.selectedIndex)
for(i=0i<42i++)
{
sD = i - cld.firstWeek
if(sD>-1 &&sD<cld.length)
{ //日期内
if ((cld[sD].lMonth==CLD.D2.selectedIndex+1)&&(cld[sD].lYear==CLD.D1.selectedIndex+1900))
{
yangy=CLD.SY.selectedIndex+1900 yangm=CLD.SM.selectedIndex
tt=false
break
}
}
}
break
}
// alert(yangy+" "+yangm)
//CLD.SY.selectedIndex=yangy//-1900
//pushBtm('YU')
//pushBtm('YD')
CLD.SM.selectedIndex=yangm
pushBtm('MD')
pushBtm('MU')
}
//changeLong end
function changeCld() {
var y,m
y=CLD.SY.selectedIndex+1900
m=CLD.SM.selectedIndex
drawCld(y,m)
}
function pushBtm(K) {
switch (K){
case 'YU' :
if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--
break
case 'YD' :
if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++
break
case 'MU' :
if(CLD.SM.selectedIndex>0) {
CLD.SM.selectedIndex--
}
else {
CLD.SM.selectedIndex=11
if(CLD.SY.selectedIndex>0) CLD.SY.selectedIndex--
}
break
case 'MD' :
if(CLD.SM.selectedIndex<11) {
CLD.SM.selectedIndex++
}
else {
CLD.SM.selectedIndex=0
if(CLD.SY.selectedIndex<149) CLD.SY.selectedIndex++
}
break
default :
CLD.SY.selectedIndex=tY-1900
CLD.SM.selectedIndex=tM
}
changeCld()
}
var Today = new Date()
var tY = Today.getFullYear()
var tM = Today.getMonth()
var tD = Today.getDate()
//////////////////////////////////////////////////////////////////////////////
var width = "130"
var offsetx = 2
var offsety = 16
var x = 0
var y = 0
var snow = 0
var sw = 0
var cnt = 0
var dStyle
document.onmousemove = mEvn
//显示详细日期资料
function mOvr(v) {
var s,festival
var sObj=eval('SD'+ v)
var d=sObj.innerHTML-1
//sYear,sMonth,sDay,week,
//lYear,lMonth,lDay,isLeap,
//cYear,cMonth,cDay
if(sObj.innerHTML!='') {
sObj.style.cursor = 's-resize'
if(cld[d].solarTerms == '' &&cld[d].solarFestival == '' &&cld[d].lunarFestival == '')
festival = ''
else
festival = '<TABLE WIDTH=100% BORDER=0 CELLPADDING=2 CELLSPACING=0 BGCOLOR="#CCFFCC"><TR><TD>'+
'<FONT COLOR="#000000" STYLE="font-size:9pt">'+cld[d].solarTerms + ' ' + cld[d].solarFestival + ' ' + cld[d].lunarFestival+'</FONT></TD>'+
'</TR></TABLE>'
s= '<TABLE WIDTH="130" BORDER=0 CELLPADDING="2" CELLSPACING=0 BGCOLOR="#000066"><TR><TD>' +
'<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD ALIGN="right"><FONT COLOR="#ffffff" STYLE="font-size:9pt">'+
cld[d].sYear+' 年 '+cld[d].sMonth+' 月 '+cld[d].sDay+' 日<br>星期'+cld[d].week+'<br>'+
'<font color="violet">农历'+(cld[d].isLeap?'闰 ':' ')+cld[d].lMonth+' 月 '+cld[d].lDay+' 日</font><br>'+
'<font color="yellow">'+cld[d].cYear+'年 '+cld[d].cMonth+'月 '+cld[d].cDay + '日</font>'+
'</FONT></TD></TR></TABLE>'+ festival +'</TD></TR></TABLE>'
document.all["detail"].innerHTML = s
if (snow == 0) {
dStyle.left = x+offsetx-(width/2)
dStyle.top = y+offsety
dStyle.visibility = "visible"
snow = 1
}
}
}
//清除详细日期资料
function mOut() {
if ( cnt >= 1 ) { sw = 0 }
if ( sw == 0 ) { snow = 0dStyle.visibility = "hidden"}
else cnt++
}
//取得位置
function mEvn() {
x=event.x
y=event.y
if (document.body.scrollLeft)
{x=event.x+document.body.scrollLefty=event.y+document.body.scrollTop}
if (snow){
dStyle.left = x+offsetx-(width/2)
dStyle.top = y+offsety
}
}
///////////////////////////////////////////////////////////////////////////
function tick() {
var today
today = new Date()
Clock.innerHTML = today.toLocaleString().replace(/(年|月)/g, "/").replace(/日/, "")
// Clock.innerHTML = TimeAdd(today.toGMTString(), CLD.TZ.value)
window.setTimeout("tick()", 1000)
}
function setCookie(name, value) {
var today = new Date()
var expires = new Date()
expires.setTime(today.getTime() + 1000*60*60*24*365)
document.cookie = name + "=" + escape(value) + "expires=" + expires.toGMTString()
}
function getCookie(Name) {
var search = Name + "="
if(document.cookie.length >0) {
offset = document.cookie.indexOf(search)
if(offset != -1) {
offset += search.length
end = document.cookie.indexOf("", offset)
if(end == -1) end = document.cookie.length
return unescape(document.cookie.substring(offset, end))
}
else return ""
}
}
/////////////////////////////////////////////////////////
function initial() {
dStyle = detail.style
CLD.SY.selectedIndex=tY-1900
CLD.SM.selectedIndex=tM
drawCld(tY,tM)
// CLD.TZ.selectedIndex=getCookie("TZ")
// changeTZ()
tick()
}
//-->
</SCRIPT>
<STYLE>.todyaColor {
BACKGROUND-COLOR: aqua
}
</STYLE>
<META content="Microsoft FrontPage 4.0" name=GENERATOR></HEAD>
<BODY onload=initial()>
<SCRIPT language=JavaScript><!--
if(navigator.appName == "Netscape" || parseInt(navigator.appVersion) <4)
document.write("<h1>你的浏览器无法执行此程序。</h1>此程序在 IE4 以后的版本才能执行!!")
//--></SCRIPT>
<DIV id=detail style="POSITION: absolute"></DIV>
<FORM name=CLD>
<div align="center">
<TABLE width="672" align="right" height="259" bordercolordark="#CC9900" border="4" background="l11.gif">
<CENTER>
<center>
<TBODY>
</center></center>
<TR>
<TD align=middle vAlign=top width="170" height="255">
<div align="center">
<center>
<TABLE BORDER=1 COLSPAN=2 width="221">
<CENTER>
<center><FONT size=2
style="FONT-SIZE: 9pt">
<td width="209">
<p align="center"><font style="font-size:10.8pt" color=RED>本地计算机时间:</FONT></FONT><BR><FONT color=#000080 face=ARIAL
id=Clock size=3 align="center"></FONT>
<P><!--时区 *表示自动调整为日光节约时间-->
</center>
</CENTER>
</TABLE>
</center>
</div>
<div align="center">
<center>
<table border=1 height="1" width="16">
<td height="1" width="255">
<table width="212" height="1"><CENTER>
<center>
<FONT id=tSave
style="COLOR: redFONT-FAMILY: WingdingsFONT
花了半个小时写了一个望采纳给好评。import java.util.Scanner
public class PrintCalendar {
/** Main method */
public static void main(String[] args) {
Scanner input = new Scanner(System.in)
// Prompt the user to enter year
System.out.print("Enter full year (e.g., 2001): ")
int year = input.nextInt()
// Prompt the user to enter month
System.out.print("Enter month in number between 1 and 12: ")
int month = input.nextInt()
//历辩 Print calendar for the month of the year
printMonth(year, month)
}
/肢穗缺族仿** Print the calendar for a month in a year */
public static void printMonth(int year, int month) {
// Print the headings of the calendar
printMonthTitle(year, month)
// Print the body of the calendar
printMonthBody(year, month)
}
/** Print the month title, e.g., May, 1999 */
public static void printMonthTitle(int year, int month) {
System.out.println(" " + getMonthName(month)
+ " " + year)
System.out.println("-----------------------------")
System.out.println(" Sun Mon Tue Wed Thu Fri Sat")
}
/** Get the English name for the month */
public static String getMonthName(int month) {
String monthName = ""
switch (month) {
case 1: monthName = "January"break
case 2: monthName = "February"break
case 3: monthName = "March"break
case 4: monthName = "April"break
case 5: monthName = "May"break
case 6: monthName = "June"break
case 7: monthName = "July"break
case 8: monthName = "August"break
case 9: monthName = "September"break
case 10: monthName = "October"break
case 11: monthName = "November"break
case 12: monthName = "December"
}
return monthName
}
/** Print month body */
public static void printMonthBody(int year, int month) {
// Get start day of the week for the first date in the month
int startDay = getStartDay(year, month)
// Get number of days in the month
int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month)
// Pad space before the first day of the month
int i = 0
for (i = 0i <startDayi++)
System.out.print("")
for (i = 1i <= numberOfDaysInMonthi++) {
System.out.printf("%4d", i)
if ((i + startDay) % 7 == 0)
System.out.println()
}
System.out.println()
}
/** Get the start day of month/1/year */
public static int getStartDay(int year, int month) {
final int START_DAY_FOR_JAN_1_1800 = 3
// Get total number of days from 1/1/1800 to month/1/year
int totalNumberOfDays = getTotalNumberOfDays(year, month)
// Return the start day for month/1/year
return (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % 7
}
/** Get the total number of days since January 1, 1800 */
public static int getTotalNumberOfDays(int year, int month) {
int total = 0
// Get the total days from 1800 to 1/1/year
for (int i = 1800i <yeari++)
if (isLeapYear(i))
total = total + 366
else
total = total + 365
// Add days from Jan to the month prior to the calendar month
for (int i = 1i <monthi++)
total = total + getNumberOfDaysInMonth(year, i)
return total
}
/** Get the number of days in a month */
public static int getNumberOfDaysInMonth(int year, int month) {
if (month == 1 || month == 3 || month == 5 || month == 7 ||
month == 8 || month == 10 || month == 12)
return 31
if (month == 4 || month == 6 || month == 9 || month == 11)
return 30
if (month == 2) return isLeapYear(year) ? 29 : 28
return 0// If month is incorrect
}
/** Determine if it is a leap year */
public static boolean isLeapYear(int year) {
return year % 400 == 0 || (year % 4 == 0 &&year % 100 != 0)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)