有这么一个桌面日历就够了 记事代办生日全都有了

日历功能我相信很多伙伴都用过,而且很多人都会有经常看日历的习惯,所以一款实用又美观的桌面日历就是一个非常不错的选择了。

而如果这个日历不仅好看,还可以方便记事,待办提醒,生日管理,这样是不是就很强大了啊?我们一起来看下,这个就是“芝麻日历”(https://rili.zhimasoft.cn/?cdn)的功能。

非常完美的融入到你的桌面,日历可以任意调整大小,以及背景和透明度,不同的壁纸结合不同的设置,会有不同的效果。

第一:我们先来看看芝麻日历的视觉表现

 

背景颜色可以选择合适自己的,比如下面这个调整成白色底,黑色字体的效果,

 

展示一下侧边栏功能,点击日期,侧边会把当日的日期信息展示出来,以及把记录到当天的事情也展现出来,如下图:

 

第二:记事功能,非常方便的记录

可以在日历记录事项,工作任务,待办清单等事情,也可以设置提醒,这样就很方便的让我们管理好日程琐事。结合在日历上,不仅桌面美观,而且帮助我们记录事情,非常不错的功能。

记事功能可以在日历侧边展示,也可以在日历上开启记事模式,如下图:

 

第四:生日管理功能,可以在日历上添加朋友们的生日,

生日可以分组管理,可以在日历上直接添加朋友生日,设置提醒,也可以在生日管理功能里面添加操作,

 

这么多功能的桌面日历,你喜欢吗?喜欢就快去下载一个体验吧!

  • 20
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你提供一个简单的桌面日历程序的实现思路和部分代码,你可以在此基础上进行修改和完善。 1. 界面设计 我们可以使用Java Swing库来实现程序的界面设计。桌面日历程序需要显示当前日期和月份的日历,还需要有添加、删除和编辑日程的功能。我们可以使用表格控件来显示日历,按钮控件来实现添加、删除和编辑功能。同时,我们还需要使用日期选择器控件来方便用户选择日期。 2. 实现日历显示 我们可以使用Calendar类来获取当前日期和月份,并根据这些信息来生成日历。具体实现过程如下: ```java // 获取当前日期和月份 Calendar cal = Calendar.getInstance(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); // 获取当前月份的第一天和最后一天 cal.set(Calendar.DAY_OF_MONTH, 1); Date firstDayOfMonth = cal.getTime(); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); Date lastDayOfMonth = cal.getTime(); // 生成日历数组 String[][] calendarData = new String[6][7]; cal.setTime(firstDayOfMonth); int row = 0, col = cal.get(Calendar.DAY_OF_WEEK) - 1; while (cal.getTime().before(lastDayOfMonth) || cal.getTime().equals(lastDayOfMonth)) { calendarData[row][col] = String.valueOf(cal.get(Calendar.DAY_OF_MONTH)); col++; if (col >= 7) { row++; col = 0; } cal.add(Calendar.DAY_OF_MONTH, 1); } ``` 在上述代码中,我们首先使用Calendar类获取当前日期和月份。接着,我们获取当前月份的第一天和最后一天,并使用一个二维数组来存储日历数据。最后,我们使用循环来生成日历数据,其中row和col表示当前单元格的行和列。 3. 实现添加、删除和编辑日程 我们可以使用JOptionPane来弹出对话框,让用户输入日程信息,并使用ArrayList来保存日程列表。具体实现过程如下: ```java // 添加日程 String schedule = JOptionPane.showInputDialog("请输入日程:"); if (schedule != null && !schedule.isEmpty()) { int dayOfMonth = Integer.parseInt(calendarData[row][col]); String date = String.format("%04d-%02d-%02d", year, month + 1, dayOfMonth); String time = JOptionPane.showInputDialog("请输入时间(格式:HH:mm):"); String dateTime = date + " " + time + ":00"; scheduleList.add(dateTime + " " + schedule); } // 删除日程 if (calendarData[row][col] != null) { ArrayList<String> selectedScheduleList = new ArrayList<>(); for (String item : scheduleList) { if (item.startsWith(date + " ")) { selectedScheduleList.add(item.substring(11)); } } if (!selectedScheduleList.isEmpty()) { String[] options = selectedScheduleList.toArray(new String[selectedScheduleList.size()]); int result = JOptionPane.showOptionDialog(null, "请选择要删除的日程:", "删除日程", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); if (result != JOptionPane.CLOSED_OPTION) { String selectedSchedule = options[result]; scheduleList.removeIf(item -> item.startsWith(date + " " + selectedSchedule)); } } } // 编辑日程 if (calendarData[row][col] != null) { ArrayList<String> selectedScheduleList = new ArrayList<>(); for (String item : scheduleList) { if (item.startsWith(date + " ")) { selectedScheduleList.add(item.substring(11)); } } if (!selectedScheduleList.isEmpty()) { String[] options = selectedScheduleList.toArray(new String[selectedScheduleList.size()]); int result = JOptionPane.showOptionDialog(null, "请选择要编辑的日程:", "编辑日程", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); if (result != JOptionPane.CLOSED_OPTION) { String selectedSchedule = options[result]; String newSchedule = JOptionPane.showInputDialog("请输入新的日程:", selectedSchedule); if (newSchedule != null && !newSchedule.isEmpty()) { scheduleList.replaceAll(item -> item.equals(date + " " + selectedSchedule) ? date + " " + newSchedule : item); } } } } ``` 在上述代码中,我们首先判断用户是否点击了添加、删除或编辑按钮。接着,我们根据当前单元格的日期来查询日程列表,并弹出相应的对话框。最后,我们将用户输入的日程信息保存到ArrayList中,并使用lambda表达式来实现日程的删除和编辑功能。 4. 实现日程提醒 我们可以使用ScheduledExecutorService来实现日程提醒功能。具体实现过程如下: ```java // 启动定时器 ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor(); executorService.scheduleAtFixedRate(() -> { Date now = new Date(); for (String item : scheduleList) { Date scheduleDate = null; try { scheduleDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(item.substring(0, 19)); } catch (ParseException e) { e.printStackTrace(); } if (scheduleDate != null && scheduleDate.after(now) && scheduleDate.getTime() - now.getTime() <= 60 * 1000) { String schedule = item.substring(20); JOptionPane.showMessageDialog(null, "日程提醒:" + schedule); } } }, 0, 1, TimeUnit.MINUTES); ``` 在上述代码中,我们首先创建一个ScheduledExecutorService对象,并使用scheduleAtFixedRate方法来执行定时任务。在定时任务中,我们首先获取当前时间,然后遍历日程列表,判断是否有日程需要提醒。如果找到需要提醒的日程,则弹出对话框显示提醒内容。 完整代码如下:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值