-
用Python绘制的七段数码管来显示数字和字母,以及倒计天数
2020-03-26 13:53:50time.gmtime())) turtle.hideturtle() turtle.done() main() 关于倒计天数的显示(#2020.5.4到现在,修改自CSDN:一只小菜ji) #SevenDigitsDrawV4倒计时.py import turtle as t import time ,datetime def drawgap...用Python绘制的七段数码管来显示数字和字母
利用Python绘制的七段数码管,实际上是用turtle绘制七段规则排列的直线,通过组合来显示出实际意义上的事物。
以嵩天老师留下的课后作业为例:
- 可以显示数字(改进了一下,用input输入)
#SevenDigitsDrawV1.py import turtle def drawgap(): turtle.penup() turtle.fd(5) def drawline(draw): drawgap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawgap() turtle.right(90) def drawdigit(digit): drawline(True) if digit in ['A','b','d','E','F',2,3,4,5,6,8,9] else drawline(False) drawline(True) if digit in ['A','b','d',0,1,3,4,5,6,7,8,9] else drawline(False) drawline(True) if digit in [0,'b','d','E','C',2,3,5,6,8,9] else drawline(False) drawline(True) if digit in ['A','b','d','E','F','C',0,2,6,8] else drawline(False) turtle.left(90) drawline(True) if digit in ['A','b','C','E','F',0,4,5,6,8,9] else drawline(False) drawline(True) if digit in ['A','C','E','F',0,2,3,5,6,7,8,9] else drawline(False) drawline(True) if digit in ['A','d',0,1,2,3,4,7,8,9] else drawline(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawdate(date): for i in date: drawdigit(eval(i)) def main(): turtle.setup(800,350,200,200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawdate(a) turtle.hideturtle() turtle.done() a= input() main()
- 可以显示字母
#SevenDigitsDrawV2.py import turtle def drawgap(): turtle.penup() turtle.fd(5) def drawline(draw): drawgap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawgap() turtle.right(90) def drawdigit(digit): drawline(True) if digit in ['A','b','d','E','F',2,3,4,5,6,8,9] else drawline(False) drawline(True) if digit in ['A','b','d',0,1,3,4,5,6,7,8,9] else drawline(False) drawline(True) if digit in [0,'b','d','E','C',2,3,5,6,8,9] else drawline(False) drawline(True) if digit in ['A','b','d','E','F','C',0,2,6,8] else drawline(False) turtle.left(90) drawline(True) if digit in ['A','b','C','E','F',0,4,5,6,8,9] else drawline(False) drawline(True) if digit in ['A','C','E','F',0,2,3,5,6,7,8,9] else drawline(False) drawline(True) if digit in ['A','d',0,1,2,3,4,7,8,9] else drawline(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawdate(date): for i in date: drawdigit(i) #如果输入的是数字则改为drawdigit(eval(i)) def main(): turtle.setup(800,350,200,200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawdate(a) turtle.hideturtle() turtle.done() a= input() main()
- 关于实时时间的显示
#SevenDigitsDrawV3.py import turtle,time def drawgap(): #绘制数码管间隔 turtle.penup() turtle.fd(5) def drawline(draw): #绘制单段数码管 drawgap() turtle.pendown() if draw else turtle.penup() turtle.fd(40) drawgap() turtle.right(90) def drawdigit(digit): #根据数字绘制七段数码管 drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False) drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False) drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False) drawline(True) if digit in [0,2,6,8] else drawline(False) turtle.left(90) drawline(True) if digit in [0,4,5,6,8,9] else drawline(False) drawline(True) if digit in [0,2,3,5,6,7,8,9] else drawline(False) drawline(True) if digit in [0,1,2,3,4,7,8,9] else drawline(False) turtle.left(180) turtle.penup() turtle.fd(20) def drawdate(date): #data为日期,格式为'%Y-%m=%d+' turtle.pencolor("red") for i in date: if i == '-': turtle.write('年',font=("Arial",24,"normal")) turtle.pencolor("green") turtle.fd(40) elif i == '=': turtle.write('月',font=("Arial",24,"normal")) turtle.pencolor("blue") turtle.fd(40) elif i == '+': turtle.write('日',font=("Arial",24,"normal")) else: drawdigit(eval(i)) def main(): turtle.setup(800,350,200,200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawdate(time.strftime('%Y-%m=%d+',time.gmtime())) turtle.hideturtle() turtle.done() main()
- 关于倒计天数的显示(#2020.5.4到现在,修改自CSDN:一只小菜ji)
#SevenDigitsDrawV4倒计时.py import turtle as t import time ,datetime def drawgap(): #绘制数码管间隔 t.penup() t.fd(5) def drawline(draw): #绘制单段数码管 drawgap() t.pendown() if draw else t.penup() t.fd(40) drawgap() t.right(90) def drawdigit(digit): #根据数字绘制七段数码管 t.write('剩余时间:', font=("Timesnewromans",24,"normal")) t.pencolor("red") t.fd(150) i=0 while i < len(digit): if digit[i] >= '0' and digit[i] <= '9': digit1 = eval(digit[i]) drawline(True) if digit1 in [2,3,4,5,6,8,9] else drawline(False) drawline(True) if digit1 in [0,1,3,4,5,6,7,8,9] else drawline(False) drawline(True) if digit1 in [0,2,3,5,6,8,9] else drawline(False) drawline(True) if digit1 in [0,2,6,8] else drawline(False) t.left(90) drawline(True) if digit1 in [0,4,5,6,8,9] else drawline(False) drawline(True) if digit1 in [0,2,3,5,6,7,8,9] else drawline(False) drawline(True) if digit1 in [0,1,2,3,4,7,8,9] else drawline(False) t.left(180) t.penup() t.fd(20) else: break i=i+1 def main(): t.setup(800,350,200,200) t.penup() t.fd(-300) t.pensize(5) remain = datetime.datetime(2020,5,1) -datetime.datetime.now() s = str(remain) drawdigit(s) t.hideturtle() t.done() main()
-
java实现倒计天数_Java 实现倒计时(由秒计算天、小时、分钟、秒)
2021-02-26 17:06:32public class Countdown4 { private static long day = 0; private static long ... } } } } } } } } System.out.println("解除禁言倒计时:" + day + "天" + hour + "小时" + minute + "分钟" + second + "秒"); } }public class Countdown4 {
private static long day = 0;
private static long hour = 0;
private static long minute = 0;
private static long second = 0;
private static boolean dayNotAlready = false;
private static boolean hourNotAlready = false;
private static boolean minuteNotAlready = false;
private static boolean secondNotAlready = false;
public static void main(String[] args) {
long totalSeconds = 60 * 60 * 24 * 1 + 1;
initData(totalSeconds);
new Timer().schedule(new TimerTask() {
@Override
public void run() {
if (secondNotAlready) {
startCount();
} else {
cancel();
}
}
}, 0, 1000);
}
private static void initData(long totalSeconds) {
resetData();
if (totalSeconds > 0) {
secondNotAlready = true;
second = totalSeconds;
if (second >= 60) {
minuteNotAlready = true;
minute = second / 60;
second = second % 60;
if (minute >= 60) {
hourNotAlready = true;
hour = minute / 60;
minute = minute % 60;
if (hour > 24) {
dayNotAlready = true;
day = hour / 24;
hour = hour % 24;
}
}
}
}
System.out.println("初始化格式化后->" + day + "天" + hour + "小时" + minute
+ "分钟" + second + "秒");
}
private static void resetData() {
day = 0;
hour = 0;
minute = 0;
second = 0;
dayNotAlready = false;
hourNotAlready = false;
minuteNotAlready = false;
secondNotAlready = false;
}
public static void startCount() {
if (secondNotAlready) {
if (second > 0) {
second--;
if (second == 0 && !minuteNotAlready) {
secondNotAlready = false;
}
} else {
if (minuteNotAlready) {
if (minute > 0) {
minute--;
second = 59;
if (minute == 0 && !hourNotAlready) {
minuteNotAlready = false;
}
} else {
if (hourNotAlready) {
if (hour > 0){
hour--;
minute = 59;
second = 59;
if (hour == 0 && !dayNotAlready) {
hourNotAlready = false;
}
} else {
if (dayNotAlready) {
day--;
hour = 23;
minute = 59;
second = 59;
if (day == 0) {
dayNotAlready = false;
}
}
}
}
}
}
}
}
System.out.println("解除禁言倒计时:" + day + "天" + hour + "小时" + minute
+ "分钟" + second + "秒");
}
}
-
日历倒计,当前时间+2天,简单写法
2018-06-04 18:07:29公司出现这个问题,让写一个一直比当前时间天数大2的倒计时的日历。 刚开始是这样写的:得到系统时间年月日,将日的天数+2,并判断日的天数大小,并与闰年平年一起比较后将经过计算的年月日显示到桌面上。 写完后...公司出现这个问题,让写一个一直比当前时间天数大2的倒计时的日历。
刚开始是这样写的:得到系统时间年月日,将日的天数+2,并判断日的天数大小,并与闰年平年一起比较后将经过计算的年月日显示到桌面上。
写完后,发现代码行有点多,又重新写直接调用时间戳,进行计算,然后展示到页面。
最后这样写了:var dt = new Date(); var curYear_start = dt.getFullYear(); var curMonth_start = dt.getMonth() + 1; var curDate_start = dt.getDate(); dt.setDate(dt.getDate() + 2); var curMonth = dt.getMonth() + 1; var curDate = dt.getDate(); $(function() { $(".curMonth").html(curMonth); $(".curDate").html(curDate); $(".curYear_start").html(curYear_start); $(".curMonth_start").html(curMonth_start); $(".curDate_start").html(curDate_start); });
直接调用可以得到+2的天数。
-
倒计时 妙味课堂_jQuery实现倒计时(倒计时年月日可自己输入)
2021-01-30 17:13:14$(function(){var tYear = ""; //输入的年份var tMonth = ""; //输入的月份var tDate = ""; //输入的日期var iRemain =... //倒计的天数var sHour = ""; //倒计时的小时var sMin = ""; //倒计时的分钟var sSec = "";...$(function(){
var tYear = ""; //输入的年份
var tMonth = ""; //输入的月份
var tDate = ""; //输入的日期
var iRemain = ""; //开始和结束之间相差的毫秒数
var sDate = ""; //倒计的天数
var sHour = ""; //倒计时的小时
var sMin = ""; //倒计时的分钟
var sSec = ""; //倒计时的秒数
var sMsec = ""; //毫秒数
//通用工具函数,在个位数上加零,根据传的N的参数,来设前面加几个零
function setDig(num,n){
var str = ""+num;
while(str.length
str="0"+str
}
return str;
}
//获得相差的天,小时,分钟,秒
function getdate(){
//创建开始时间和结束时间的日期对象
var oStartDate = new Date();
var oEndDate = new Date();
//获取文本框的值
tYear = $("#tyear").val();
tMonth = $("#tmonth").val();
tDate = $("#tdate").val();
//设置结束时间
oEndDate.setFullYear(parseInt(tYear));
oEndDate.setMonth(parseInt(tMonth)-1);
oEndDate.setDate(parseInt(tDate));
oEndDate.setHours(0);
oEndDate.setMinutes(0);
oEndDate.setSeconds(0);
//求出开始和结束时间的秒数(除以1000)
iRemain = (oEndDate.getTime() - oStartDate.getTime())/1000;
//总的秒数除以一天的秒数,再取出整数部分,就得出有多少天。
sDate = setDig(parseInt(iRemain/(60*60*24)),3);
//总的秒数除以一天的秒数,然后取其中的余数,就是把整数天扣除之后,剩下的总秒数。
iRemain %= 60*60*24;
//剩下的总秒数除以一个小时的秒数,再取整数部分,就是有多少小时。
sHour = setDig(parseInt(iRemain/(60*60)),2)
//剩下的总秒数除以一个小时的秒数,再取其余数,这个余数,就是扣除小时这后,剩下的总秒数。
iRemain %= 60*60;
//剩下的总秒数除以一分钟的秒数,再取其整数部分,就是有多少分钟。
sMin = setDig(parseInt(iRemain/60),2)
//剩下的总秒数除以一分钟的秒数,再取其余数,这个余数,就是扣除分钟之后,剩下的总秒数。
iRemain%=60;
//剩下的秒数
sSec = setDig(iRemain,2);
//毫秒数
sMsec = sSec*100;
}
//更改显示的时间
function updateShow(){
$(".showdate span").text(tYear+"-"+tMonth+"-"+tDate);
$(".count span").each(function(index, element) {
if(index==0){
$(this).text(sDate);
}else if(index==1){
$(this).text(sHour);
}else if(index == 2){
$(this).text(sMin);
}else if(index == 3){
$(this).text(sSec);
}else if(index == 4){
$(this).text(sMsec);
}
});
}
//每一秒执行一次时间更新
function autoTime(){
getdate();
//如果小于零,清除调用自己,并且返回
if(iRemain<0){
clearTimeout(setT);
return;
}
updateShow();
var setT = setTimeout(autoTime,1000);
}
//点击按钮开始计时
$("button").click(function(){
autoTime();
})
})
昨天看了“妙味课堂”的倒计时视频,自己学着写了下。
记录需要注意的地方:
1.取模运算:
iRemain %= 60*60*24;
就是返回余数,在这个实例中的余数,就是把整数拿走后,剩下的秒数。
2.工具函数 setDig(num,n)
可以根据传入的参数,自动在传入的数字前加零
DEMO(案例)下载:http://xiazai.jb51.net/yuanma/mydaojishi(jb51.net).rar
以上就是本文的全部内容,希望对大家有所帮助,谢谢对聚米学院的支持!
-
jQuery实现倒计时(倒计时年月日可自己输入)
2020-11-27 04:42:05//倒计的天数 var sHour = ""; //倒计时的小时 var sMin = ""; //倒计时的分钟 var sSec = ""; //倒计时的秒数 var sMsec = ""; //毫秒数 //通用工具函数,在个位数上加零,根据传的N的参数,来设前面加几个零... -
基于jQuery的倒计时实现代码
2020-12-03 14:29:39在线演示:http://demo.jb51.net/js/2012/mydaojishi/打包下载:mydaojishi_jb51核心代码... //倒计的天数 var sHour = “”; //倒计时的小时 var sMin = “”; //倒计时的分钟 var sSec = “”; //倒计时的秒数 var s -
jQuery-倒计时
2012-05-30 09:08:00$(function(){ var tYear = ""; //输入的年份 var tMonth = ""; //输入的月份 var tDate = ""; //输入的日期 var iRemain = "... //倒计的天数 ... -
单片机与DSP中的基于P87LPC762单片机的电子计时牌设计
2020-12-02 18:11:05此外,还有许多特殊的计时牌,它们可以把安全生产天数、倒计时天数、工作环境温度、万年历等等都设计到其中,从而大大扩展了计时牌的应用范围。 1 系统设计原理 本设计采用飞利浦公司的P87LPC762做为微处理器,... -
易语言定时器原码 闹钟原码
2012-10-08 08:59:15需要倒计的时间 = 到数值 (编辑框小时.内容) × 60 × 60 + 到数值 (编辑框分钟.内容) × 60 .如果 (需要倒计的时间 ≤ 50) 信息框 (“设置的时间段不符合规范”, 0, ) 返回 () .否则 时钟1.时钟周期 = ... -
Bacysoft®纪念日计时器使用说明
2012-01-16 13:26:38功能简介: ...本应用最大的特点是可以设定一个计时器,用于计算现在距离纪念日的天数,如果纪念日是未来的某一天,则为倒计时;如果是过去的某一天,则为正计时。本服务完全免费。 创建我的纪念日计 -
Excel公式大全操作应用实例(史上最全)
2018-03-06 21:09:38通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示... -
EXCEL函数公式集
2010-03-16 03:26:38通过条件格式将小计和总计的行设为不同的颜色 如何实现这样的条件格式 隔行不同字体颜色怎么设置 让不同类型数据用不同颜色显示 如何做这样的EXCEL表(颜色交叉) 条件格式 使用条件格式设置颜色条纹 相同数据的提示... -
EXCEL集成工具箱V9.0 多国语言最终原版(2003-2010通用)
2011-01-07 20:40:25【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两时点间的相隔天数等。 【LED时钟与样式】 超漂亮的LED时钟,有默认时钟、蓝色时钟、经典时钟三种样式供选择。 【系统常用工具】 系统常用工具的快捷... -
EXCEL集成工具箱完整版 (简体/繁体/英文多国语言版) V7.0
2010-08-13 10:31:10【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两时点间的相隔天数等。 【LED时钟与样式】 超漂亮的LED时钟,有默认时钟、蓝色时钟、经典时钟三种样式供选择。 【系统常用工具】 系统常用工具的快捷... -
EXCEL集成工具箱V8.0完整增强版(精简)
2010-09-23 16:58:17【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两时点间的相隔天数等。 【LED时钟与样式】 超漂亮的LED时钟,有默认时钟、蓝色时钟、经典时钟三种样式供选择。 【系统常用工具】 系统常用工具的快捷... -
EXCEL集成工具箱V6.0
2010-09-11 01:44:37成本核算 【取唯一值】 还在使用<分类汇总>或<小计>功能对数据进行唯一值的繁锁操作吗? 本工具可快捷方便地取任意选中区域的存储格内容为唯一值清单,快捷且高效。 【取产品型号】 功能较在字符串中取数字强大多倍... -
EXCEL集成工具箱V8.0 多国语言版(2003-2010通用)
2010-09-11 12:08:58成本核算 【取唯一值】 还在使用<分类汇总>或<小计>功能对数据进行唯一值的繁锁操作吗? 本工具可快捷方便地取任意选中区域的存储格内容为唯一值清单,快捷且高效。 【取产品型号】 功能较在字符串中取数字强大多倍... -
VB编程资源大全(源码 其它3)
2007-10-18 15:06:06Cool(32KB) 617,o039_72.zip 鼠标计程器(23KB) 618,o038_love.zip 情书生成器源代码(161KB) 619,o037_shellex5.zip 能打开默认的文件夹和默认的网站(7KB) 620,o035_shchangenotify.zip 未... -
VB编程资源大全(源码 其它1)
2007-10-18 15:20:26Cool(32KB) 617,o039_72.zip 鼠标计程器(23KB) 618,o038_love.zip 情书生成器源代码(161KB) 619,o037_shellex5.zip 能打开默认的文件夹和默认的网站(7KB) 620,o035_shchangenotify.zip 未... -
VB编程资源大全(源码 其它2)
2007-10-18 15:18:10Cool(32KB) 617,o039_72.zip 鼠标计程器(23KB) 618,o038_love.zip 情书生成器源代码(161KB) 619,o037_shellex5.zip 能打开默认的文件夹和默认的网站(7KB) 620,o035_shchangenotify.zip 未...
-
网上图书馆系统.zip
-
使用vue搭建微信H5公众号项目
-
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
Mac下Anaconda中python安装xgboost
-
Mac在线视频下载工具:PullTube
-
购物清单React-源码
-
Leetcode-滑窗-3. 无重复字符的最长子串
-
MySQL 备份与恢复详解(高低版本 迁移;不同字符集 相互转换;表
-
易康-源码
-
Unity VR导入FBX类型的动画不播放问题解决办法
-
vue项目 更新baseURL 不用重新打包
-
朱老师鸿蒙系列课程第1期-3.鸿蒙系统Harmonyos源码配置和管理
-
2021-03-03
-
Git常用命令大全(速查)
-
MySQL 高可用(DRBD + heartbeat)
-
基于Qt的LibVLC开发教程
-
SIGONO 游戏严选
-
MIGO首创游戏模式,助力DeFi重塑金融秩序
-
mike-solomon.github.io:喵-源码
-
arcgis_js_v418_api+sdk.zip