谁能帮我用java做一个生日选择的下拉列表框
就是如果我选择的是闰年2月,就有29天,不是闰年时2月只有28天,其它1,3,5,7,8,10,12月份有31天,否则有30天,请大家帮帮我吧,我做一个注册界面时突然遇到...
就是如果我选择的是闰年2月,就有29天,不是闰年时2月只有28天,其它1,3,5,7,8,10,12月份有31天,否则有30天,请大家帮帮我吧,我做一个注册界面时突然遇到了这个问题,请大家帮我,谢谢了
最好给出源代码,谢谢了 展开
最好给出源代码,谢谢了 展开
展开全部
这个是java的实现的方法,但不实用。后面有个js做的,一般是用那个。
import java.util.Calendar;
public class CreateCalendar {
private static int t=1;
public void createCalendar() {
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, 2);//这里自己填。2是指3月
/*
* 这里先确定这个月第一天(也就是1号)是在星期几(一个星期的第几天)
*/
int nowdate=c.get(Calendar.DAY_OF_MONTH);//现在是几号
c.set(Calendar.DAY_OF_MONTH, 1);//把日期设置为当月1号
int firstDay=c.get(Calendar.DAY_OF_WEEK);//1号是星期几
c.set(Calendar.DAY_OF_MONTH, nowdate);//再把日期设置回来
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH) + 1;
int dayPerMonth=c.getActualMaximum(Calendar.DAY_OF_MONTH);
/*
* WEEK_OF_MONTH一个月的第几个星期
* 《这里每到一个星期六为一个星期,不一定是7天,(也就是在日历上:每行是一个星期)
* -->(注意WEEK_OF_MONTH是从日历的第一行算起的,而日历可能从第二行开始,
* 所以c.getActualMaximum(Calendar.WEEK_OF_MONTH))=0;<--
*
* DAY_OF_WEEK_IN_MONTH一个月的第几个星期
* 《这里的每一个星期必须是7天(日历上:如果第一行就一天,那么下一行的6天也是第一星期)
*/
int dayWeekOfMonth=c.getActualMaximum(Calendar.WEEK_OF_MONTH);
System.out.print(year + "年");
System.out.print(month + "月");
System.out.println();
System.out.print("日"+"\t");
System.out.print("一"+"\t");
System.out.print("二"+"\t");
System.out.print("三"+"\t");
System.out.print("四"+"\t");
System.out.print("五"+"\t");
System.out.print("六"+"\t");
System.out.println();
for(int i=1;i<=dayWeekOfMonth;i++){
for(int j=c.getActualMinimum(Calendar.DAY_OF_WEEK);j<=c.getActualMaximum(Calendar.DAY_OF_WEEK)&&t<=dayPerMonth;j++){
if(i==1&&j<firstDay){
System.out.print(" \t");
}else{
System.out.print(t+"\t");
t++;
}
}
System.out.println();
}
System.out.println("today is :"+c.get(Calendar.DAY_OF_MONTH));
}
public static void main(String[] args) {
CreateCalendar cc = new CreateCalendar();
cc.createCalendar();
}
}
下面是js写的,现在一般都是这样,功能自己扩展。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>datetest.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript" language="JavaScript">
/**
* 生成日历
*/
var d = new Date();
var actualyear=d.getFullYear();//当前年(同步的当前时间)
var actualmonth=d.getMonth();//当前月(同步的当前时间)
var actualdate=d.getDate();//当前日期(同步的当前时间)
var year = d.getFullYear();// 获得年份xxxx
var month = d.getMonth();// 获得月份0~11
var now = d.getDate();// 获得日期1~31
function day_1_month(){// 当前月1号是星期几0~6
d.setDate(1);
var day_1_week = d.getDay();
d.setDate(now);
return day_1_week;
}
function actualmaximumdaymonth(){// 当月最大天数
d.setMonth(month + 1);
d.setDate(1);
d.setDate(d.getDate() - 1);
var maxdate = d.getDate();
d.setFullYear(year, month, now);
return maxdate;
}
function initdiv(){// 初始化calendar div
document.getElementById("calendar").innerHTML = null;
}
function checkdate(checkdate){// 如果月份or日期<10,前面加0
if (checkdate < 10) {
return "0" + checkdate;
}
else {
return checkdate;
}
}
function getcalendar(prefix, next){// 画出calendar
if(prefix==null&&next==null){
year=actualyear;
month=actualmonth;
now=actualdate;
}
if(prefix==1){
if(month==0){
year=year-1;
month=11;
}else{
month=month-1;
}
d.setFullYear(year, month, null);
}
if(next==1){
if(month==11){
year=year+1;
month=0;
}else{
month=month+1;
}
d.setFullYear(year, month, null);
}
initdiv();// 每次执行,清空div
document.getElementById("calendar").style.display = "block";// 点击文本框div显示
document.getElementById("calendar").style.backgroundColor = "black";
var today = 1;
var str = "<table class=\"caltal\">";
str += "<tr><td colspan=\"7\" style=\"text-align='center';color:white;\"><input class=\"monthchangeout\" type=\"button\" value=\"<<\" onmouseover=\"this.className='monthchangeover'\" onmouseout=\"this.className='monthchangeout'\" onclick=\"getcalendar(1,0)\"/>" + year + "-" + (checkdate(month + 1)) + "<input class=\"monthchangeout\" type=\"button\" value=\">>\" onmouseover=\"this.className='monthchangeover'\" onmouseout=\"this.className='monthchangeout'\" onclick=\"getcalendar(0,1)\"/></td></tr>";
str += "<tr class=\"dateclasshead\"><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>";
for (var i = 0; i < 6; i++) {
str += "<tr>";
for (var j = 0; j < 7 && today <= actualmaximumdaymonth(); j++) {
if (i == 0 && j < day_1_month()) {
str += "<td></td>";
}
else {
if (today == actualdate && year == actualyear && month == actualmonth) {
str += "<td class=\"caltaltdnow\" onmouseover=\"this.className='caltaltdover'\" onmouseout=\"this.className='caltaltdnow'\" onclick=\"displaydate('" + year + "/" + (checkdate(month + 1)) + "/" + checkdate(today) + "')\">" + today + "</td>";
today++;
}
else {
str += "<td class=\"caltaltdout\" onmouseover=\"this.className='caltaltdover'\" onmouseout=\"this.className='caltaltdout'\" onclick=\"displaydate('" + year + "/" + (checkdate(month + 1)) + "/" + checkdate(today) + "')\">" + today + "</td>";
today++;
}
}
}
str += "</tr>";
}
str += "</table>";
document.getElementById("calendar").innerHTML = str;
}
function displaydate(nowdate){// 点击日期后div消失
document.getElementById("getcalendar").value = nowdate;
document.getElementById("calendar").style.display = "none";
}
</script>
<style type="text/css">
/*
* 显示日期的div
*/
#calendar {
margin: 20px 0 0 110px;
width: 150px;
}
/*
* div中的table框架
*/
.caltal {
border: 1px solid black;
}
/*
* table中第二行(日、一、二、三、四、五、六)
*/
.dateclasshead {
color: white;
text-align: center;
}
/*
* 日期当天
*/
.caltaltdnow {
text-align: center;
color: orange;
}
/*
* 鼠标从显示的日期上移开
*/
.caltaltdout {
text-align: center;
color: white;
}
/*
* 鼠标移动到显示的日期上
*/
.caltaltdover {
text-align: center;
color: red;
cursor: hand;
}
/*
* 月份手动改变按钮
*/
.monthchangeout { /*鼠标不在按钮上时*/
color: white;
background-color: black;
border-width: 0px;
}
.monthchangeover { /*鼠标移动到按钮上时*/
color: red;
background-color: black;
border-width: 0px;
cursor: hand;
}
</style>
</head>
<body>
点击获取日历:<input id="getcalendar" type="text" onfocus="getcalendar()"/><br>
<div id="calendar"></div>
</body>
</html>
import java.util.Calendar;
public class CreateCalendar {
private static int t=1;
public void createCalendar() {
Calendar c = Calendar.getInstance();
c.set(Calendar.MONTH, 2);//这里自己填。2是指3月
/*
* 这里先确定这个月第一天(也就是1号)是在星期几(一个星期的第几天)
*/
int nowdate=c.get(Calendar.DAY_OF_MONTH);//现在是几号
c.set(Calendar.DAY_OF_MONTH, 1);//把日期设置为当月1号
int firstDay=c.get(Calendar.DAY_OF_WEEK);//1号是星期几
c.set(Calendar.DAY_OF_MONTH, nowdate);//再把日期设置回来
int year=c.get(Calendar.YEAR);
int month=c.get(Calendar.MONTH) + 1;
int dayPerMonth=c.getActualMaximum(Calendar.DAY_OF_MONTH);
/*
* WEEK_OF_MONTH一个月的第几个星期
* 《这里每到一个星期六为一个星期,不一定是7天,(也就是在日历上:每行是一个星期)
* -->(注意WEEK_OF_MONTH是从日历的第一行算起的,而日历可能从第二行开始,
* 所以c.getActualMaximum(Calendar.WEEK_OF_MONTH))=0;<--
*
* DAY_OF_WEEK_IN_MONTH一个月的第几个星期
* 《这里的每一个星期必须是7天(日历上:如果第一行就一天,那么下一行的6天也是第一星期)
*/
int dayWeekOfMonth=c.getActualMaximum(Calendar.WEEK_OF_MONTH);
System.out.print(year + "年");
System.out.print(month + "月");
System.out.println();
System.out.print("日"+"\t");
System.out.print("一"+"\t");
System.out.print("二"+"\t");
System.out.print("三"+"\t");
System.out.print("四"+"\t");
System.out.print("五"+"\t");
System.out.print("六"+"\t");
System.out.println();
for(int i=1;i<=dayWeekOfMonth;i++){
for(int j=c.getActualMinimum(Calendar.DAY_OF_WEEK);j<=c.getActualMaximum(Calendar.DAY_OF_WEEK)&&t<=dayPerMonth;j++){
if(i==1&&j<firstDay){
System.out.print(" \t");
}else{
System.out.print(t+"\t");
t++;
}
}
System.out.println();
}
System.out.println("today is :"+c.get(Calendar.DAY_OF_MONTH));
}
public static void main(String[] args) {
CreateCalendar cc = new CreateCalendar();
cc.createCalendar();
}
}
下面是js写的,现在一般都是这样,功能自己扩展。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>datetest.html</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript" language="JavaScript">
/**
* 生成日历
*/
var d = new Date();
var actualyear=d.getFullYear();//当前年(同步的当前时间)
var actualmonth=d.getMonth();//当前月(同步的当前时间)
var actualdate=d.getDate();//当前日期(同步的当前时间)
var year = d.getFullYear();// 获得年份xxxx
var month = d.getMonth();// 获得月份0~11
var now = d.getDate();// 获得日期1~31
function day_1_month(){// 当前月1号是星期几0~6
d.setDate(1);
var day_1_week = d.getDay();
d.setDate(now);
return day_1_week;
}
function actualmaximumdaymonth(){// 当月最大天数
d.setMonth(month + 1);
d.setDate(1);
d.setDate(d.getDate() - 1);
var maxdate = d.getDate();
d.setFullYear(year, month, now);
return maxdate;
}
function initdiv(){// 初始化calendar div
document.getElementById("calendar").innerHTML = null;
}
function checkdate(checkdate){// 如果月份or日期<10,前面加0
if (checkdate < 10) {
return "0" + checkdate;
}
else {
return checkdate;
}
}
function getcalendar(prefix, next){// 画出calendar
if(prefix==null&&next==null){
year=actualyear;
month=actualmonth;
now=actualdate;
}
if(prefix==1){
if(month==0){
year=year-1;
month=11;
}else{
month=month-1;
}
d.setFullYear(year, month, null);
}
if(next==1){
if(month==11){
year=year+1;
month=0;
}else{
month=month+1;
}
d.setFullYear(year, month, null);
}
initdiv();// 每次执行,清空div
document.getElementById("calendar").style.display = "block";// 点击文本框div显示
document.getElementById("calendar").style.backgroundColor = "black";
var today = 1;
var str = "<table class=\"caltal\">";
str += "<tr><td colspan=\"7\" style=\"text-align='center';color:white;\"><input class=\"monthchangeout\" type=\"button\" value=\"<<\" onmouseover=\"this.className='monthchangeover'\" onmouseout=\"this.className='monthchangeout'\" onclick=\"getcalendar(1,0)\"/>" + year + "-" + (checkdate(month + 1)) + "<input class=\"monthchangeout\" type=\"button\" value=\">>\" onmouseover=\"this.className='monthchangeover'\" onmouseout=\"this.className='monthchangeout'\" onclick=\"getcalendar(0,1)\"/></td></tr>";
str += "<tr class=\"dateclasshead\"><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>";
for (var i = 0; i < 6; i++) {
str += "<tr>";
for (var j = 0; j < 7 && today <= actualmaximumdaymonth(); j++) {
if (i == 0 && j < day_1_month()) {
str += "<td></td>";
}
else {
if (today == actualdate && year == actualyear && month == actualmonth) {
str += "<td class=\"caltaltdnow\" onmouseover=\"this.className='caltaltdover'\" onmouseout=\"this.className='caltaltdnow'\" onclick=\"displaydate('" + year + "/" + (checkdate(month + 1)) + "/" + checkdate(today) + "')\">" + today + "</td>";
today++;
}
else {
str += "<td class=\"caltaltdout\" onmouseover=\"this.className='caltaltdover'\" onmouseout=\"this.className='caltaltdout'\" onclick=\"displaydate('" + year + "/" + (checkdate(month + 1)) + "/" + checkdate(today) + "')\">" + today + "</td>";
today++;
}
}
}
str += "</tr>";
}
str += "</table>";
document.getElementById("calendar").innerHTML = str;
}
function displaydate(nowdate){// 点击日期后div消失
document.getElementById("getcalendar").value = nowdate;
document.getElementById("calendar").style.display = "none";
}
</script>
<style type="text/css">
/*
* 显示日期的div
*/
#calendar {
margin: 20px 0 0 110px;
width: 150px;
}
/*
* div中的table框架
*/
.caltal {
border: 1px solid black;
}
/*
* table中第二行(日、一、二、三、四、五、六)
*/
.dateclasshead {
color: white;
text-align: center;
}
/*
* 日期当天
*/
.caltaltdnow {
text-align: center;
color: orange;
}
/*
* 鼠标从显示的日期上移开
*/
.caltaltdout {
text-align: center;
color: white;
}
/*
* 鼠标移动到显示的日期上
*/
.caltaltdover {
text-align: center;
color: red;
cursor: hand;
}
/*
* 月份手动改变按钮
*/
.monthchangeout { /*鼠标不在按钮上时*/
color: white;
background-color: black;
border-width: 0px;
}
.monthchangeover { /*鼠标移动到按钮上时*/
color: red;
background-color: black;
border-width: 0px;
cursor: hand;
}
</style>
</head>
<body>
点击获取日历:<input id="getcalendar" type="text" onfocus="getcalendar()"/><br>
<div id="calendar"></div>
</body>
</html>
展开全部
直接搞个日历控件不更方便??
推荐个给你,你百度一下My97日历控件吧~
推荐个给你,你百度一下My97日历控件吧~
更多追问追答
追问
我没用过这个,请你跟我讲一下吧,谢谢了,怎么用啊?
追答
你百度一下他的官网吧..会有详细使用介绍的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我不知道你是做CS还是BS的,BS的话可以在网上找找JS控件么,要是CS的话我可以给你一个!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询