JAVA编程实现:计算你的生日还有多少天,你的生日是星期几。

测试用例举例如下:

请输入你的生日,格式形如:2007-9-21:
1977-09-08
输出对应的是星期几:
THURSDAY
距离你的生日还有182天。

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.InputMismatchException;
import java.util.Locale;
import java.util.Scanner;

public class Du {

public static void main(String[] args) {

String birthday = null;

while(true){
System.out.println("Please input your birthday in format: (yyyy-MM-dd):");
try{
Scanner scanner = new Scanner(System.in);
birthday = scanner.next("\\d{4}-[01]\\d-[0-3]\\d\\s*");
break;
}catch(InputMismatchException mismatchExp){
System.out.println("Invalid birthday date in format! Date should be in format(yyyy-MM-dd')");
}

}

String[] ary = birthday.trim().split("-");

int year = Integer.parseInt(ary[0]);
int month = Integer.parseInt(ary[1]);
int date = Integer.parseInt(ary[2]);

Calendar calendar = Calendar.getInstance(Locale.US);
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DATE, date);

String weekDay = new SimpleDateFormat("E").format(calendar.getTime());

calendar.setTime(new Date());

long now = calendar.getTimeInMillis();

if(calendar.get(Calendar.MONTH)+1 > month){
calendar.add(Calendar.YEAR, 1);
}

calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DATE, date);

long nextBirthMillionSeconds = calendar.getTimeInMillis();

long julianDay = (nextBirthMillionSeconds - now)/(1000*60*60*24);

System.out.println(weekDay);

System.out.println("Only " + julianDay + " left for your birthday");

}
}
------------------
Please input your birthday in format: (yyyy-MM-dd):
1977-09-08
Thu
Only 167 left for your birthday
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-21
<div style="margin-top:-10px;">
<SCRIPT language=JavaScript1.2>
function setcountdown(theyear,themonth,theday){
yr=theyear;mo=themonth;da=theday
}
setcountdown(2011,3,26)
var occasion=" "
var message_on_occasion="abcd"
var countdownwidth='480px'
var countdownheight='20px'
var countdownbgcolor=''
var opentags='<font style="font-size:30px;font-family:Arial;;"><small>'
var closetags='</small></font>'
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
var crosscount=''
function start_countdown(){
if (document.layers)
document.countdownnsmain.visibility="show"
else if (document.all||document.getElementById)
crosscount=document.getElementById&&!document.all?document.getElementById("countdownie") : countdownie
countdown()
}
if (document.all||document.getElementById)
document.write('<span id="countdownie" style="width:'+countdownwidth+'; background-color:'+countdownbgcolor+'"></span>')
window.onload=start_countdown
function countdown(){
var today=new Date()
var todayy=today.getYear()
if (todayy < 1000)
todayy+=1900
var todaym=today.getMonth()
var todayd=today.getDate()
var todayh=today.getHours()
var todaymin=today.getMinutes()
var todaysec=today.getSeconds()
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
futurestring=montharray[mo-1]+" "+da+", "+yr
dd=Date.parse(futurestring)-Date.parse(todaystring)
dday=Math.floor(dd/(60*60*1000*24)*1)
dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)

if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1&&todayd==da){

if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+message_on_occasion+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+message_on_occasion+closetags //�ոչ���
//document.getElementById("Discount_advertising").style.display = "none";
return
}
else if (dday<=-1){
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+"ʱ���Ѿ�����!"+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+""+closetags // �Ѿ������˹�
//document.getElementById("Discount_advertising").style.display = "none";
return
}
else{
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+dday+ " days, "+dhour+" hours, "+dmin+" minutes, and "+dsec+" seconds left until "+occasion+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
if(dday<10){
dday = "0" + dday;
}
if(dhour<10){
dhour = "0" + dhour;
}
if(dmin<10){
dmin = "0" + dmin;
}
if(dsec<10){
dsec = "0" + dsec;
}
document.getElementById("Discount_advertising").style.display = "block";
crosscount.innerHTML=opentags+""+dday+ " : "+dhour+" : "+dmin+" : "+dsec+""+occasion+closetags
}
setTimeout("countdown()",1000)
}
</SCRIPT>
</div>
相似回答