一键复制时间提醒

这两天写了个超级简单的微信小程序,展示时间提醒,同时支持将提醒信息一键复制到剪贴板:

今天是2019年4月17日,星期三,今年的第107天,这一年29.32%的时间已流逝

简简单单的数字,颇有时不我待的紧迫感。

之所以写这么个微信小程序,是因为朋友有每日打卡总结的习惯,每次都要将这句话手动生成:

640?wx_fmt=jpeg 640?wx_fmt=png

本文呢,就是记录下我在用代码简化获取该提醒信息的思路与过程。

最原始的方法自然是手动计算,查一下日期,计算下是今年的第几天,再用这数字除以平年的365或闰年的366得到百分比,把文本和数据拼接,目标达成。

至于用代码来简化此过程,我是有两个思路:如果是在电脑端,我会选择写Python代码,每次运行代码直接生成文本,复制取用;如果是在手机上,我选择做个微信小程序,首页展示提醒信息,一键复制目标文本。

电脑端Python代码

具体到Python代码,实现方式有很多种,思路基本和手动计算一致,拿到日期信息进行些简单的判断计算,再将文本字符串和日期数字数据拼接:

640?wx_fmt=png 640?wx_fmt=png

值得一提的是calendar模块里有个isleap函数,可以拿来直接判断是否为闰年,当然如果不喜欢,自己写代码通过闰年规则判断也不复杂。写完代码,每天需要时在电脑运行下该py代码,即可自动生成提示信息了。

手机端微信小程序

手机端,最初想法是利用微信接口,定时发送该文本信息,考虑到需要挂着号去自动发送不太方便放弃。后来觉得如果把信息挂在微信小程序页面上,既方便打开,又能实现信息文本的实时更新,而且自己也有些前端的基础,值得一试。

具体微信小程序的开发需要参照小程序开发文档,基础知识是前端HTML、JavaScript和CSS等。编码过程倒不算复杂,相当于把编码语言由Python转为JavaScript,再将生成的结果数据在wxml页面绑定展示。

var date = new Date();	
var year = date.getFullYear();	
var month = date.getMonth()+1;	
var day = date.getDate();	
var week = ['日', '一', '二', '三', '四', '五', '六']	
var weekday = week[date.getDay()]	
var total,dayOrder,percent,dateText;	
if ((year%100==0&&year%400==0)||(year%100!=0&&year%4==0)){	
  total = 366;	
}else{	
  total = 365	
}	
dayOrder = Math.ceil((new Date() - new Date(new Date().getFullYear().toString())) / (24 * 60 * 60 * 1000));	
percent = (dayOrder / total * 100).toFixed(2);	
dateText = "今天是"+year+"年"+month+"月"+day+"日,星期"+weekday+",今年的第"+dayOrder+"天,这一年"+percent+"%的时间已流逝";

为了方便手机端的复制操作,我在页面上添加了一键复制的按钮,可以直接将JS生成的文本信息复制到剪贴板。该功能的实现是调用微信小程序剪贴板的API:

copyText: function(){	
  wx.setClipboardData({	
    data: this.data.dateInfo,	
    success(res) {	
      wx.getClipboardData({	
        success(res) {	
          console.log(res.data) // data	
        }	
      })	
    }	
  })	
}

因为编码工作量很小,整个过程繁琐在注册、提交、审核和发布小程序等流程。我也是花了些时间从头研究其文档,才勉强搞出这个简陋的单页面小程序:

640?wx_fmt=jpeg

最终小程序功能很单一:首页展示时间提醒,支持将提醒信息一键复制到剪贴板。至于是否授权登录并不影响功能实现,登陆后会简单展示微信头像和昵称。除了文字开头处的小程序链接,这里也附上小程序二维码方便感兴趣的各位来体验:

640?wx_fmt=jpeg

以上便是我对获取时间提醒的代码实现,虽然确实折腾了些,但也开启了微信小程序开发的支线探索任务。后续我也会尝试优化丰富该小程序,也期待你来分享好的建议和点子。

最近也有朋友问我还有没有拿来练手的项目,我觉得除了网上搜值得参考的练习项目,完全可以自己去挖掘身边的小麻烦来解决。我之前有几篇涉及编码的文章,也大都是由自己或朋友的想法出发,借助编码的手段将其快捷地实现。

在类似的想法驱动过程中练习编码,哪怕最终实现效果不如人意,学习过程也是大有收获的。


推荐阅读:

640?wx_fmt=png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值