前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一键复制时间提醒

一键复制时间提醒

作者头像
TTTEED
发布2020-07-09 14:33:22
6630
发布2020-07-09 14:33:22
举报

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

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

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

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

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

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

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

电脑端Python代码

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

值得一提的是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
        }
      })
    }
  })
}

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

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TTTEED 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档