java 制作简易日历_帮忙用JAVA编写一个简单的日历

展开全部

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

class DateWin extends JFrame implements ItemListener{

Calendar cd = null;

int years;

int months;

int dates;

JTable table;

Object date[][];

Object name[]={"日","一","二","三","四","五","六"};

JComboBox year,month;

JLabel label1,label2;

JPanel panel;

DateWin(String s){

super(s);

setSize(400,300);

setLocation(120,120);

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

year=new JComboBox();

//year.addItem("1990");

for (int i=0;i<30;i++){

int years=1990+i;

year.addItem(years);

}

month=new JComboBox();

for (int i=1;i<13;i++){

month.addItem(i);

}

label1=new JLabel("请选择年62616964757a686964616fe78988e69d8331333236366331份:");

label2=new JLabel("请选择月份:");

panel=new JPanel();

panel.add(label1);

panel.add(year);

panel.add(label2);

panel.add(month);

Container con=getContentPane();

con.setLayout(new BorderLayout());

con.add(panel,BorderLayout.NORTH);

cd=new GregorianCalendar();

//years=Integer.parseInt(year.getSelectedItem().toString());

//months=Integer.parseInt(month.getSelectedItem().toString())-1;

//cd=new GregorianCalendar(years,months,1);

years=cd.get(Calendar.YEAR);

year.setSelectedItem(years);

months=cd.get(Calendar.MONTH)+1;

month.setSelectedItem(months);

cd.set(Calendar.DATE, 1);

int dateNumber=cd.getActualMaximum(Calendar.DATE);

int firstDay=cd.get(Calendar.DAY_OF_WEEK)-1;

int count=1;

date=new Object[6][7];

for(int i=0;i<6;i++){

for(int j=0;j<7;j++){

if(count>dateNumber)

break;

else {

if ((i*7+j)

continue;

else{

date[i][j]=count;

count++;

}

}

}

}

table=new JTable(date,name);

table.setRowHeight(15);

con.add(new JScrollPane(table),BorderLayout.CENTER);

con.validate();

validate();

year.addItemListener(this);

month.addItemListener(this);

}

public void itemStateChanged(ItemEvent e) {

// TODO Auto-generated method stub

years=Integer.parseInt(year.getSelectedItem().toString());

months=Integer.parseInt(month.getSelectedItem().toString())-1;

cd=new GregorianCalendar(years,months,1);

int dateNumber=cd.getActualMaximum(Calendar.DATE);

int firstDay=cd.get(Calendar.DAY_OF_WEEK)-1;

int count=1;

date=new Object[6][7];

for(int i=0;i<6;i++){

for(int j=0;j<7;j++){

if(count>dateNumber)

break;

else {

if ((i*7+j)

continue;

else{

date[i][j]=count;

count++;

}

}

}

}

table=new JTable(date,name);

table.setRowHeight(15);

getContentPane().removeAll();

getContentPane().setLayout(new BorderLayout());

getContentPane().add(panel,BorderLayout.NORTH);

getContentPane().add(new JScrollPane(table),BorderLayout.CENTER);

validate();

}

}

public class HomeWork3_1 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

DateWin dateWin=new DateWin("Java日历");

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单Java程序,可以让您记录每日的支出和收入,并将其显示在日历上: ```java import java.util.*; public class DailyCalendar { private static Map<Date, Double> expenses = new HashMap<>(); private static Scanner scanner = new Scanner(System.in); public static void main(String[] args) { boolean quit = false; while (!quit) { System.out.println("\nEnter 1 to add an expense, 2 to print calendar, or 3 to quit:"); int choice = scanner.nextInt(); switch (choice) { case 1: addExpense(); break; case 2: printCalendar(); break; case 3: quit = true; break; default: System.out.println("Invalid choice."); } } } private static void addExpense() { System.out.println("\nEnter the date (MM/DD/YYYY):"); String dateString = scanner.next(); System.out.println("Enter the amount:"); double amount = scanner.nextDouble(); Date date = parseDate(dateString); if (!expenses.containsKey(date)) { expenses.put(date, amount); } else { expenses.put(date, expenses.get(date) + amount); } System.out.println("Expense added."); } private static void printCalendar() { System.out.println("\nEnter the month and year (MM/YYYY):"); String monthYearString = scanner.next(); String[] parts = monthYearString.split("/"); int month = Integer.parseInt(parts[0]); int year = Integer.parseInt(parts[1]); Calendar calendar = Calendar.getInstance(); calendar.set(year, month - 1, 1); int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH); double totalExpenses = 0; for (int i = 1; i <= daysInMonth; i++) { calendar.set(year, month - 1, i); Date date = calendar.getTime(); double expense = expenses.getOrDefault(date, 0.0); System.out.printf("%2d: $%.2f\n", i, expense); totalExpenses += expense; } System.out.printf("\nTotal expenses for %s: $%.2f\n", monthYearString, totalExpenses); } private static Date parseDate(String dateString) { try { return new SimpleDateFormat("MM/dd/yyyy").parse(dateString); } catch (ParseException e) { System.out.println("Invalid date format."); return null; } } } ``` 该程序使用了一个`Map`来存储每个日期的支出和收入总额,用户可以选择添加支出和收入,或者查看特定月份的日历和总支出。您可以根据需要对其进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值