这是一个简单的 Java 程序,实现了提醒簿的功能。

import java.util.ArrayList;
import java.util.Date;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class ReminderBook {
    private ArrayList<Reminder> reminders; // 提醒列表

    public ReminderBook() {
        reminders = new ArrayList<>();
    }

    public void addReminder(Date time, String content) {
        reminders.add(new Reminder(time, content));
    }

    public void deleteReminder(int index) {
        reminders.remove(index);
    }

    public void updateReminder(int index, Date time, String content) {
        reminders.set(index, new Reminder(time, content));
    }

    public void showReminders() {
        System.out.println('当前提醒:');
        for (int i = 0; i < reminders.size(); i++) {
            System.out.println(i + '. ' + reminders.get(i));
        }
    }

    public void startReminding() {
        Timer timer = new Timer();
        for (Reminder r : reminders) {
            timer.schedule(new ReminderTask(r), r.getTime());
        }
    }

    public static void main(String[] args) {
        ReminderBook book = new ReminderBook();
        Scanner in = new Scanner(System.in);

        while (true) {
            System.out.println('请输入操作:1-添加提醒,2-删除提醒,3-修改提醒,4-查看提醒,5-开始提醒,0-退出');
            int op = in.nextInt();

            if (op == 0) {
                break;
            }

            switch (op) {
                case 1:
                    System.out.println('请输入提醒时间(格式:yyyy-MM-dd HH:mm:ss):');
                    String timeStr = in.next();
                    System.out.println('请输入提醒内容:');
                    String content = in.next();
                    try {
                        Date time = Reminder.dateFormat.parse(timeStr);
                        book.addReminder(time, content);
                        System.out.println('添加成功!');
                    } catch (Exception e) {
                        System.out.println('时间格式不正确!');
                    }
                    break;
                case 2:
                    book.showReminders();
                    System.out.println('请输入要删除的提醒编号:');
                    int index = in.nextInt();
                    book.deleteReminder(index);
                    System.out.println('删除成功!');
                    break;
                case 3:
                    book.showReminders();
                    System.out.println('请输入要修改的提醒编号:');
                    index = in.nextInt();
                    System.out.println('请输入新的提醒时间(格式:yyyy-MM-dd HH:mm:ss):');
                    timeStr = in.next();
                    System.out.println('请输入新的提醒内容:');
                    content = in.next();
                    try {
                        Date time = Reminder.dateFormat.parse(timeStr);
                        book.updateReminder(index, time, content);
                        System.out.println('修改成功!');
                    } catch (Exception e) {
                        System.out.println('时间格式不正确!');
                    }
                    break;
                case 4:
                    book.showReminders();
                    break;
                case 5:
                    book.startReminding();
                    break;
                default:
                    System.out.println('操作不正确!');
                    break;
            }
        }
    }
}

class Reminder {
    public static final java.text.SimpleDateFormat dateFormat = new java.text.SimpleDateFormat('yyyy-MM-dd HH:mm:ss');
    private Date time; // 提醒时间
    private String content; // 提醒内容

    public Reminder(Date time, String content) {
        this.time = time;
        this.content = content;
    }

    public Date getTime() {
        return time;
    }

    public String getContent() {
        return content;
    }

    public String toString() {
        return dateFormat.format(time) + ' ' + content;
    }
}

class ReminderTask extends TimerTask {
    private Reminder reminder;

    public ReminderTask(Reminder reminder) {
        this.reminder = reminder;
    }

    public void run() {
        System.out.println('提醒时间到:' + reminder);
        // 发送邮件提醒
        final String username = '你的邮箱账号';
        final String password = '你的邮箱密码';
        final String emailTo = '收件人邮箱地址';

        Properties props = new Properties();
        props.put('mail.smtp.auth', 'true');
        props.put('mail.smtp.starttls.enable', 'true');
        props.put('mail.smtp.host', 'smtp.gmail.com');
        props.put('mail.smtp.port', '587');

        Session session = Session.getInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });

        try {
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(username));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(emailTo));
            message.setSubject('提醒:' + reminder.getContent());
            message.setText('提醒时间到:' + reminder);

            Transport.send(message);

            System.out.println('邮件提醒已发送!');
        } catch (MessagingException e) {
            System.out.println('邮件提醒发送失败!');
            throw new RuntimeException(e);
        }
    }
}

该程序使用 ArrayList 来存储提醒,可以添加、删除、修改提醒,并且可以查看当前的提醒列表。在开始提醒时,使用 Timer 来定时执行 ReminderTask,ReminderTask 会弹出窗口提醒用户,并使用 JavaMail 发送邮件提醒。用户需要在程序中输入自己的邮箱账号、密码和收件人邮箱地址,才能使用邮件提醒功能。

Java 提醒簿:创建、管理和邮件提醒事项

原文地址: https://www.cveoy.top/t/topic/oKQb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录