導航:首頁 > 編程語言 > java彈出日歷

java彈出日歷

發布時間:2023-06-03 19:04:52

① 求一個java編寫的日歷,用控制台的形式顯示。

import
java.util.Calendar;
class
CalendarList{
int
year,month;
int
dayNum,i,num,count=0;
Calendar
objCalendar;
int[]
arrDayNum={31,28,31,30,31,30,31,31,30,31,30,31};
CalendarList(){
objCalendar=Calendar.getInstance();
this.year=objCalendar.get(Calendar.YEAR);
this.month=objCalendar.get(Calendar.MONTH)+1;
//要+1
}
CalendarList(String
args0,String
args1){
this.year=Integer.parseInt(args1);
this.month=Integer.parseInt(args0);
objCalendar=Calendar.getInstance();//這里沒有get
objCalendar.set(Calendar.YEAR,year);//set是這樣用的
objCalendar.set(Calendar.MONTH,month-1);
}
void
display(){
System.out.println("\t\t\t"+year+"年"+month+"月");
System.out.println("日





六");
//每個空3個空格
num=objCalendar.get(Calendar.DAY_OF_WEEK);
if
((year/4==0&&year/100!=0)||(year/400==0)){
arrDayNum[1]+=1;
}
for
(i=1;i<=12;i++){
if
(i==month){
dayNum=arrDayNum[i-1];
break;
}
}
for(i=1;i<=num;i++){
System.out.print("
");//5個空格
count++;
}
for
(i=1;i<=dayNum;i++){
System.out.print(i<10?"
"+i+"
":i+"
");
//自己改了下
,空格數:1,3,3
count++;
if(count==7){
System.out.println();
count=0;
}
}
System.out.println
();
}
}
public
class
MainClass
{
public
static
void
main(String[]
args)
{
CalendarList
objCalendar=new
CalendarList();
CalendarList
objCalendar1=new
CalendarList("11","2007");
objCalendar.display();
objCalendar1.display();
}
}

② java怎麼實現日歷日程提醒

資料庫
首先,保存事件的表mem
create table mem(
mid varchar(10) not null prmary key,
mdate date not null,
mem varchar(255),
userid varchar(20) not null
)
-- 如果是簡單的單用戶的話可以不要這個。
-- 然後用戶登錄的時候你就可以使用select mem from mem where userid='當前用戶' and m_date='今天的日期'就可以查詢出這個用戶添加的日程提醒了。

③ 用java寫個日歷程序怎麼寫,請給出詳細步驟,謝謝

隨便做了一個,其實一樓網友說的判斷哪些30天,是否閏年什麼的沒必要,看代碼

packagecom..calendar;

importjava.awt.BorderLayout;
importjava.awt.Color;
importjava.awt.FlowLayout;
importjava.awt.Font;
importjava.awt.GridLayout;
importjava.awt.event.ItemEvent;
importjava.awt.event.ItemListener;
importjava.text.DateFormat;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;

importjavax.swing.JComboBox;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.border.CompoundBorder;
importjavax.swing.border.EmptyBorder;
importjavax.swing.border.LineBorder;

{
=1L;
privateJComboBoxyearBox,monthBox;
privatestaticfinalintYEAR_RANGE=50;//年份范圍,即往前往後各推多少年

privateJPaneltopPane,contentPane;
privateJPanelbottomPane,bottomTopPane,mainPane;
privateJLabeldateLabel;

privatebooleaninit=false;
privateCalendarcal;
privatestaticfinalCalendarNOW=Calendar.getInstance();
privatestaticfinalString[]DAY_OF_WEEK={"星期日","星期一","星期二",
"星期三","星期四","星期五","星期六"};

privateDateFormatdf=newSimpleDateFormat("yyyy年MM月");
privatestaticfinalColorFONT_GRAY=newColor(0xaa,0xaa,0xaa);

privatestaticfinalintDATE_GRAY=-1;
privatestaticfinalintDATE_RED=1;
privatestaticfinalintDATE_BLACK=0;

publicCalendarInterface(){
super("日歷");
cal=Calendar.getInstance();
cal.setFirstDayOfWeek(Calendar.SUNDAY);
}

publicvoidlaunch(){
setVisible(true);
setSize(600,450);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//主面板
contentPane=newJPanel(newBorderLayout());
contentPane.setBorder(newEmptyBorder(5,5,5,5));
contentPane.setBackground(Color.WHITE);

//頂部選擇日期和月份的區域
topPane=newJPanel(newFlowLayout(FlowLayout.CENTER,50,0));//居中對齊,控制項間隔50px
topPane.setBorder(newEmptyBorder(0,0,10,0));//底部空出10px
topPane.setBackground(Color.WHITE);

//底部顯示星期條和日歷列表區域
bottomPane=newJPanel(newBorderLayout());
bottomPane.setBorder(newLineBorder(Color.BLACK,1));
//星期條
bottomTopPane=newJPanel(newGridLayout(1,7));
bottomTopPane.setBackground(newColor(0x55,0x55,0x55));
//日期列表
mainPane=newJPanel();
mainPane.setLayout(newGridLayout(0,7));//列數為7,行數自動填充
for(inti=Calendar.SUNDAY;i<=Calendar.SATURDAY;i++){
bottomTopPane.add(createDay(DAY_OF_WEEK[i-1]));
}
bottomPane.add(bottomTopPane,BorderLayout.NORTH);//星期欄放在頂部

//年份下拉列表
yearBox=newJComboBox();
intcurrentYear=cal.get(Calendar.YEAR);
//年份范圍為往前往後各推50年
for(inti=currentYear-YEAR_RANGE;i<currentYear+YEAR_RANGE+1;i++){
yearBox.addItem(i);
}
yearBox.addItemListener(newItemListener(){
@Override
publicvoiditemStateChanged(ItemEvente){
if(ItemEvent.SELECTED==e.getStateChange()){
reset();//選擇後刷新布局
}
}
});
yearBox.setSelectedIndex(YEAR_RANGE);//默認選中當前年份

Stringmonths[]={"1","2","3","4","5","6","7","8","9","10","11","12"};
//月份下拉列表
monthBox=newJComboBox(months);
monthBox.addItemListener(newItemListener(){
@Override
publicvoiditemStateChanged(ItemEvente){
if(ItemEvent.SELECTED==e.getStateChange()){
reset();//刷新布局
}
}
});
monthBox.setSelectedIndex(cal.get(Calendar.MONTH));//選擇當前月份

//顯示當前年月的控制項
this.dateLabel=newJLabel(df.format(cal.getTime()));
topPane.add(yearBox);
topPane.add(monthBox);
topPane.add(dateLabel);

contentPane.add(topPane,BorderLayout.NORTH);
bottomPane.add(mainPane,BorderLayout.CENTER);
contentPane.add(bottomPane,BorderLayout.CENTER);
setContentPane(contentPane);
validate();
init=true;//初始化完成
reset();//刷新界面
setLocationRelativeTo(null);//居中顯示
}

publicstaticvoidmain(String[]args){
newCalendarInterface().launch();
}

privatevoidreset(){//每次年份或月份改變後則日歷重新排列
if(!init){//若未初始化則返回,避免設置默認年月時調用此方法出錯
return;
}
intyear=(Integer)yearBox.getSelectedItem();
intmonth=Integer.parseInt((String)monthBox.getSelectedItem());

//將日期設置為本月第一天
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH,month-1);
cal.set(Calendar.DATE,1);
dateLabel.setText(df.format(cal.getTime()));//顯示年月

mainPane.removeAll();//清空日歷列表

//判斷本月第一天是星期幾,在第一天之前增加空的日歷
intstartDayOfWeek=cal.get(Calendar.DAY_OF_WEEK);
inti;
//先設置為本周屬於上個月的幾天,置灰顯示
cal.add(Calendar.DATE,-(startDayOfWeek-Calendar.SUNDAY)-1);
for(i=Calendar.SUNDAY;i<startDayOfWeek;i++){
cal.add(Calendar.DATE,1);
intdate=cal.get(Calendar.DATE);
mainPane.add(createDate(Integer.toString(date),DATE_GRAY));
}
i=startDayOfWeek;

//重新初始化為本月第一天
cal.set(Calendar.MONTH,month-1);
cal.set(Calendar.DATE,1);
intmaxDate=cal.getActualMaximum(Calendar.DATE);//本月最多的天數(不用再去判斷是否閏年了)
for(intj=1;j<=maxDate;j++){
cal.set(Calendar.DATE,j);//日期一直自增,用來判斷是否是今天
JLabeljlDate=null;
if(isToday()){//是今天則高亮顯示
jlDate=createDate(Integer.toString(j),DATE_RED);
}else{//不是今天則顯示為普通顏色
jlDate=createDate(Integer.toString(j));
}
mainPane.add(jlDate);
}
//最後一周把不屬於本月的幾天用灰色控制項填充
intlastDay=cal.get(Calendar.DAY_OF_WEEK);
for(i=lastDay;i<Calendar.SATURDAY;i++){
cal.add(Calendar.DATE,1);
intdate=cal.get(Calendar.DATE);
mainPane.add(createDate(Integer.toString(date),DATE_GRAY));
}
mainPane.validate();
}

privateJLabelcreateDate(Stringdate){
returncreateDate(date,DATE_BLACK);
}
//創建日期控制項
privateJLabelcreateDate(Stringdate,intdateColor){
JLabellabel=newJLabel(date,JLabel.CENTER);
CompoundBorderborder=newCompoundBorder(
newLineBorder(Color.WHITE,1),
newEmptyBorder(10,10,10,10));

label.setBorder(border);
Fontfont=newFont("Arial",Font.BOLD,30);
if(DATE_GRAY==dateColor){//如果不是本月則文字置灰
label.setForeground(FONT_GRAY);
}elseif(DATE_RED==dateColor){//如果是今天則高亮顯示
label.setForeground(Color.RED);
}
label.setFont(font);
returnlabel;
}

//創建星期幾的橫條
privateJLabelcreateDay(Stringday){
JLabeljlDay=newJLabel(day,JLabel.CENTER);
jlDay.setBorder(newEmptyBorder(5,5,5,5));
jlDay.setBackground(Color.GRAY);
jlDay.setForeground(Color.WHITE);
returnjlDay;
}

//判斷是否今天
privatebooleanisToday(){
returncal.get(Calendar.YEAR)==NOW.get(Calendar.YEAR)
&&cal.get(Calendar.MONTH)==NOW.get(Calendar.MONTH)
&&cal.get(Calendar.DATE)==NOW.get(Calendar.DATE);
}
}

④ 用java圖形用戶界面實現: 編寫一個日歷程序,能實現顯示日歷等簡單功能。 (運行後有窗體出現的那

import javax.swing.JOptionPane;

public class NewClass{
public static void main(String[] args){
int year,month;
Calender cal=new Calender(2008,10);
cal.showCalender();
year=Integer.parseInt(JOptionPane.showInputDialog("Year:"));
month=Integer.parseInt(JOptionPane.showInputDialog("Month:"));
cal.setYear(year);
cal.setMonth(month);
cal.showCalender();
}
}

class Calender{
private int year,month;
public Calender(){
year=0;
month=1;
}
public Calender(int year){
this.year=year;
month=1;
}
public Calender(int year,int month){
this.year=year;
if(month>12)
this.month=month%12;
else
this.month=month;
}
public void setYear(int year){
this.year=year;
}
public void setMonth(int month){
if(month>12)
this.month=month%12;
else
this.month=month;
}
private int dayOfMonth(){
int days=0;
switch(month){
case 1:days=31;break;
case 2:{
if(((year%4==0)&&(year%100!=0))||(year%400==0))
days=29;
else
days=28;
break;
}
case 3:days=31;break;
case 4:days=30;break;
case 5:days=31;break;
case 6:days=30;break;
case 7:days=31;break;
case 8:days=31;break;
case 9:days=30;break;
case 10:days=31;break;
case 11:days=30;break;
case 12:days=31;break;
default:
days=0;
}
return days;
}
private int dayOfWeek(){
int Y=year;
int M=month;
int D=1;
int A;
A = Y>0?(5+(Y+1)+(Y-1)/4-(Y-1)/100+(Y-1)/400)%7:(5+Y+Y/4-Y/100+Y/400)%7;
A = M>2?(A+2*(M+1)+3*(M+1)/5)%7:(A+2*(M+2)+3*(M+2)/5)%7;
if (((Y%4 == 0 && Y%100 != 0)|| Y%400 == 0) && M>2) A =(A+1)%7;
A=(A+D)%7;
return A;
}
public void showCalender(){
String str=new String();
str=" ";
str+=year+"年"+month+"月";
str+="\n\n";
str+="日 一 二 三 四 五 六\n";
int week=this.dayOfWeek();
for(int i=0,j=1;i<7;i++){
if(i<week)
str+=" ";
else{
str+=" "+j+" ";
j++;
}
}
str+="\n";
end:
for(int i=7-week+1;i<=this.dayOfMonth();){
for(int j=0;j<7;j++){
if(i<10)
str+=" "+i+" ";
else
str+=i+" ";
i++;
if(i>this.dayOfMonth())
break end;
}
str+="\n";
}
JOptionPane.showMessageDialog(null,str);

}
}

⑤ 日歷輸出程序java控制流程

import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;

public class MyCalendar
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
String reg = "^(\\d+)[^\\d]+((0?[1-9])|(1[012]))$";
while(true)
{
System.out.println("輸入年月(年和月用非數字隔開:如2015.1)(什麼都不輸入直接退出)");
String line = scanner.nextLine().trim();
if("".equals(line))
{
scanner.close();
break;
}
if(!line.matches(reg))
{
continue;
}
int year = Integer.parseInt(line.replaceAll(reg, "$1"));
int month = Integer.parseInt(line.replaceAll(reg, "$2"));
System.out.println("日\t一\t二\t三\t四\t五\t六");
Calendar calendar = Calendar.getInstance();
// 這個月的1號是星期幾
calendar.set(year, month - 1, 1);
int day = calendar.get(Calendar.DAY_OF_WEEK);
int start = Calendar.SUNDAY;
calendar.add(Calendar.DATE, -day + start);
while(start < day)
{
System.out.print(calendar.get(Calendar.DATE) + "\t");
calendar.add(Calendar.DATE, 1);
start++;
}
calendar.set(year, month - 1, 1);
Date now = calendar.getTime();
calendar.set(year, month, 1);
Date next = calendar.getTime();
for(Date cur = now; cur.before(next);)
{
calendar.setTime(cur);
int x = calendar.get(Calendar.DATE);
String tmp = x < 10 ? "0" + x : x + "";
System.out.print(tmp + "\t");
if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)
{
System.out.println();
}
calendar.add(Calendar.DATE, 1);
cur = calendar.getTime();
}
calendar.add(Calendar.DATE, -1);
int to = calendar.get(Calendar.DAY_OF_WEEK);
int end = Calendar.SATURDAY;
while(to < end)
{
calendar.add(Calendar.DATE, 1);
int x = calendar.get(Calendar.DATE);
String tmp = x < 10 ? "0" + x : x + "";
System.out.print(tmp + "\t");
to++;
}
System.out.println("\r\n");
}
}
}

⑥ java 界面中窗體裡面點擊一個按鈕或輸入框時顯示一個日歷表格,裡面可以選擇日期。。。

swing 可以使用 SwingX庫提供的JXDatePicker

⑦ java如何在窗口中顯示日歷

Date date = new Date();//你具體要賦值的Date值
JComboBox comboBox = new JComboBox();//你自己的下拉列表

Calendar cal = Calendar.getInstance();
cal.setTime(date);

int maxWeek =cal.get(Calendar.WEEK_OF_YEAR);
for(int i=1;i<=maxWeek;i++){
comboBox.addItem(i);
}

閱讀全文

與java彈出日歷相關的資料

熱點內容
word使用教程下載 瀏覽:295
電腦文件平鋪圖片默認大小 瀏覽:115
文件查看設置信息失敗 瀏覽:668
編程如何編出烏鴉喝水的課文 瀏覽:20
國家反詐app報案助手怎麼使用 瀏覽:439
秘密文件丟失多少天 瀏覽:237
js中csstext 瀏覽:382
目標文件名過長復制 瀏覽:892
樂動力計步器老版本 瀏覽:933
壓縮文件鏈接怎麼編輯 瀏覽:808
如何鎖定PDF文件里的圖章 瀏覽:89
資料庫超時是什麼 瀏覽:649
文件怎麼改整列內容 瀏覽:764
360壓縮文件發郵件空白 瀏覽:813
上哪裡查自己大數據 瀏覽:907
編程語言怎麼學車 瀏覽:189
編程該怎麼學才能先找工作 瀏覽:524
文件刻制光碟多少錢 瀏覽:861
校園網的網路組成結構 瀏覽:862
u盤系統復制文件過大 瀏覽:843

友情鏈接