声明

前几天加班太狠了今天调休一天,睡到下午醒了没什么事就写了一个这样的小玩意儿。
大佬看到之后不要把我拉到黑名单里,本人没有任何摸鱼行为,工作认真负责,能够高强度连续加班。(滑稽)

先上效果:


前一阵子收到微信群里的一条消息如下:

心想:嗯?!这玩意儿我为啥不做一个呢?

着手开始准备:


结构:

假期对象:Holiday

package eneity;import java.util.Date;public class Holiday {private String type;private Date dateDay;public String getType() {return type;}public void setType(String type) {this.type = type;}public Date getDateDay() {return dateDay;}public void setDateDay(Date dateDay) {this.dateDay = dateDay;}public Holiday(String type, Date dateDay) {this.type = type;this.dateDay = dateDay;}
}

窗口+工具类:Swing

import eneity.Holiday;import javax.swing.*;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.Timer;class Swing extends JFrame  {private final static Date NOW_DATE = new Date();private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");private static SimpleDateFormat showSdf = new SimpleDateFormat("M月d日");private static SimpleDateFormat timeSdf = new SimpleDateFormat("HH");private static SimpleDateFormat sdfiTmes = new SimpleDateFormat("yyyyMMddHHmmss");private static SimpleDateFormat yaer = new SimpleDateFormat("YYYY");private static SimpleDateFormat month = new SimpleDateFormat("MM");private static SimpleDateFormat day = new SimpleDateFormat("dd");Swing() throws  Exception{this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize( 700, 270);this.setLocationRelativeTo(null);//在屏幕中居中显示JPanel panel = new JPanel();this.add(panel);placeComponents(panel);//下班倒计时标题Date endDate = sdfiTmes.parse(yaer.format(NOW_DATE)+ month.format(NOW_DATE)+ day.format(NOW_DATE)+ "180000");this.setTitle("您正在加班!建议立即关机!");if(NOW_DATE.getTime()<endDate.getTime()){java.util.Timer timer = new Timer();timer.schedule(new TimerTask() {@Overridepublic void run() {setTitle("【您的下班时间是18:00,距离您下班还有"+getEndWrokTimes(endDate)+"】");}}, 0, 1000);}this.setVisible(true);}private static void placeComponents(JPanel panel) throws  Exception{int i = 15;int y = 25;List<Holiday> list = new ArrayList<>();list.add(new Holiday("中秋节",sdf.parse("2021-09-19")));list.add(new Holiday("国庆节",sdf.parse("2021-10-01")));list.add(new Holiday("元旦",sdf.parse("2022-01-01")));list.add(new Holiday("春节",sdf.parse("2022-02-01")));panel.setLayout(null);panel.add( getLabel("【国家摸鱼总办】"+showSdf.format(NOW_DATE)+","+getTimeText()+"摸鱼人,工作再累,一定不要忘记摸鱼哦。",i) );i+=y;panel.add( getLabel("有事没事起身去茶水间去厕所去廊道走走,别老在工位上坐着,钱是老板的,但命是自己的。",i) );i+=y;int zmDays = zm();if(zmDays==0){panel.add( getLabel("顶住今天!明天就是周六,加油!打工人!",i) );i+=y;}else{panel.add( getLabel("距离本周周末还有"+zm()+"天",i) );i+=y;}for (Holiday holiday :list){if(holiday.getDateDay().getTime()<NOW_DATE.getTime()){continue;}panel.add( getLabel(daysCount(holiday),i) );i+=y;}}/*** 封装方法* @param text 内容* @param y 位置Y* @return 返回label组件*/private static JLabel getLabel(String text,int y){JLabel label = new JLabel(text);label.setFont(new java.awt.Font("宋体", Font.PLAIN, 15));label.setBounds(10,y,2000,30);return label;}/**** @return 输出下班时分秒*/private static String getEndWrokTimes(Date endDate){Date nowDate = new Date();long time = endDate.getTime()-nowDate.getTime();// 时int hour = Math.round(time / 1000 / 60 / 60 % 24);// 分int minute = Math.round(time / 1000 / 60 % 60);// 秒int second = Math.round(time / 1000 % 60);return String.format("%s时%s分%s秒", hour, minute, second);}/*** @return 问候语*/private static String getTimeText()    {String time;if (belongCalendar(0,6)){time = "凌晨了";}else if(belongCalendar(6,11)){time = "早上好";}else if(belongCalendar(11,14)){time = "中午好";}else if (belongCalendar(14,19)){time = "下午好";}else if (belongCalendar(19,24)){time = "晚上好";}else{time = "你好";}return time;}/*** 判断是否在时间范围内* @param beginTime 开始时间* @param endTime  结束时间* @return 范围内?真:假*/private static boolean belongCalendar(int beginTime, int endTime) {return (Integer.parseInt(timeSdf.format(NOW_DATE))>beginTime && Integer.parseInt(timeSdf.format(NOW_DATE))<= endTime);}/**** @param holiday 假期对象* @return  输出文本:距离假期还有XX天*/private static String daysCount(Holiday holiday){int days = (int) ((holiday.getDateDay().getTime() - NOW_DATE.getTime()) / (1000*3600*24));if(days==0){return "明天就是"+holiday.getDateDay()+"!";}else{return "距离"+holiday.getType()+"假期还有"+days+"天";}}/**** @return 最近一次周末天数*/private static int zm()  {int days = 0;Calendar calendar = new GregorianCalendar();for(int i=1;;i++){calendar.add(calendar.DATE,1);if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){days = --i;break;}}return days;}}

Main

public class Main{public static void main(String[] args) throws Exception{new Swing();}}

无聊写个JFrame开发摸鱼提醒小玩意儿相关推荐

  1. 基于simple-robot框架写的qq自动摸鱼功能:java

    然后的话,里面需要注册一些api,截止到发帖前这些接口都是免费的,一天可以获取个一百次,个人用还是够够的. 注意:因为我太马虎,不小心把源码丢在了上家公司,所以导致现在有一个GroupConfig文件 ...

  2. 做Android开发摸鱼是要付出代价的,被主管劝退,我后悔了!

    我上月被裁现在找工作,准备面试的时候看了好多技术文章越看感觉自己掌握的东西越少.马上要去面试了感觉心好虚. 事情经过 是的 我的主管也觉得自己是猪-(主管原话) 我去年招了 2 个安卓开发,其中一个同 ...

  3. Python开发摸鱼小游戏——兔獾大战,越玩越上瘾

    前阵子看到国外一个12岁的孩子写的兔獾大战游戏,心生敬佩,想当年我还是12岁的时候还不知电脑为何物,连小霸王都未曾玩过.自己也未曾想去搞游戏开发,纯属自娱自乐.在此心态下,依葫芦画瓢重新架构了一下该游 ...

  4. Electron,打造上班划水摸鱼桌面小工具:“股票监控“软件

    最近一个朋友入了股市这个坑,大家都懂的,买了股票你有事没事就想摸出手机看两眼,但是作为一个员工被老板或者领导看到炒股肯定不是什么好事,所以他在公司炒股的时候总感觉不安心,心想如果把数据呈现在电脑桌面某 ...

  5. 摸鱼的小贤在瞎搞Python - Anaconda的安装

    系列文章目录 1-Anaconda的安装 -- 文章都会尽量详细,话多请见谅(我是话痨 文章目录 系列文章目录 1. Anaconda是什么 2. Anaconda的安装(Windows为例) 3. ...

  6. 摸鱼的小贤在瞎搞R - R语言内置数据集的使用

    系列文章目录 1-R语言的安装及使用(还没写这个,太简单了不太想写) 2-R语言内置数据集的使用 -- 文章都会尽量详细,话多请见谅(我是话痨 文章目录 系列文章目录 1. 查看包中有哪些数据集 2. ...

  7. 摸鱼加速小能手,实用笔刷快拿走

    3套实用笔刷素材 今天给大家带来了3套实用笔刷 01 聚光灯舞台景观 闪光灯特效PS笔刷 02 中国古风水墨毛笔 墨水污渍装饰元素图案PS笔刷 03 安全警示带边框 无缝图案元素AI矢量笔刷 下载地址 ...

  8. 手写了个 BOSS 来了的摸鱼神器!

    作者 |小小明 来源 |杰哥的IT之旅 今天我们的目标是就是将Ping整个网段IP的总耗时降低到5秒以内,这样我们就能够在5秒内知道指定mac地址设备的上下线,例如开发一个BOSS来了的摸鱼神器,只要 ...

  9. C语言小游戏第二弹~1-100猜数字(无聊时候摸鱼必备)

    hello uu们,我们本期的小游戏是在1-100里面猜数字,无聊摸鱼必备小游戏哦~~ 闲话少谈,整活走起 首先我们可以简单的把这个程序主题分成两大块 1.游戏界面 2.猜数字过程主体 下面开始分步详 ...

最新文章

  1. 哈尔滨__伏尔加庄园
  2. linux 应用层时间和随机数,zigbee cc2530时间
  3. netmiko 记录日志_netmiko连接网络设备
  4. codeforces1471 D. Strange Definition
  5. ajax jsonp img
  6. 小试MemSQL (The World's Fastest Database?)
  7. 马斯克宣布:半年后发布定制AI芯片,特斯拉车主免费升级Hardware 3
  8. dd linux 格式化u盘启动盘_Ubuntu to go启动盘制作
  9. python动态人脸识别_python3.8动态人脸识别
  10. 读书篇:《细说PHP》四、数组
  11. 微信应用开发简单示例,学生自助报道系统
  12. VS1838B 红外接收头接线及单片机编码原理
  13. STM32F7--->SDRAM
  14. 【MybatisPlus】MP来实现一些特殊的查询
  15. OBS录屏软件无法打开的问题,无法捕获到游戏画面的问题
  16. 输入法规则(U模式输入)
  17. GEF原理及实现系列(一、GEF概述)
  18. 【@NotNull和@NotBlank的区别】
  19. Office Word 不显示 Citavi 插件,如何修复?
  20. 干货 | 科研人的KPI怎么算,H指数和G指数是什么

热门文章

  1. Unity快速获取图片宽高
  2. 016Java问题记录001IllegalMonitorStateException
  3. 以太坊ETH交易数据解析
  4. 一个清华大学毕业生在麻省理工学院读计算机专业看美国博士研究生如何攻博
  5. 双十一频繁弹窗,一招解决
  6. TF报错及解决方法 Error: TF_DENORMALIZED_QUATERNION
  7. MD5、SHA1和android apk签名杂谈
  8. mysql求及格百分率_关于mysql进行名次的排名和计算及格率的分享
  9. windows7 中文乱码解决方法
  10. 华北理工大学计算机考研真题,2021华北理工大学考研历年真题复习资料