C# 浮点转时间
想了大半天实在想不出什么更适合文章的标题。。。
就现在这个标题,挺好- -
什么是浮点转时间呢?
今天写的一个计时功能,想来想去还是现在这种解决方案比较合适
先上一张图在来讲解比较明了
如图:赛车游戏的计时
计时格式为:分'秒'毫秒
先来个脑筋急转弯让大家乐乐
已知:
1小时=60分
1分=60秒
1秒=?毫秒
敲了四年代码今天我居然会掉进这个坑里!!估计脑袋短路了吧- -
按照这个逻辑1秒=60毫秒,这是完全错误的!1秒=1000毫秒才是正确的答案
好吧,请深深的鄙视我吧。。。
其实这篇文章没有什么高深的东西,主要说这种解决方案还是不错滴
怎么个不错法呢,听我一一道来
可以看见上图中有一个“个人记录”一栏
如果我们要把这个数据存在数据库中,咋存?
用存日期时间的方式?
用文本?
在这里我用的是浮点型
从游戏开始计算,一局游戏我到完成花费了150.12秒
我就直接把150.12存进数据库,然后读取的时候在把这个数转换成 分/秒/毫秒 这样的格式
可以看见当 分/秒/毫秒 为一位数时,会自动补0,比如:01 02 03 这样
所以我们现在要做的是,获取时间:totalTime += Time.deltaTime;
然后在相对应的计算出 分/秒/毫秒
我写了一个方法,这个方法仅供我计时用
其他地方反正用不上,就不考虑扩展性什么的了
参考一下我的思路就行!上代码
/// 计算时间 <summary>
/// 计算时间
/// </summary>
/// <param name="_Convert">欲计算的文本</param>
/// <param name="_point">小数点左=0;右=1</param>
/// <returns>返回格式 00</returns>
private string CalcTime(string _Convert, int _point)
{
string[] temSplit = _Convert.Split(new char[] { '.' }); if (Convert.ToInt32(temSplit[_point]) < )
return ("" + temSplit[_point]).Replace("-", ""); //被整除的时候为'-.--',所以直接替换成0
return (temSplit[_point].Substring(, ) + temSplit[_point].Substring(, )).Replace("-","");
}
没错,你没有看错,我用的就是这么简单的方法
调用的代码
void FixedUpdate()
{
totalTime += Time.deltaTime;
temMinute = CalcTime(Convert.ToDouble(totalTime / 60f).ToString("0.00"), );
temSeconds = CalcTime(Convert.ToDouble(totalTime - Convert.ToDouble(temMinute) * 60f).ToString("0.00"), );
temMilli = CalcTime(Convert.ToDouble(totalTime - Convert.ToDouble(temMinute) * 60f).ToString("0.00"), );
}
好吧,真的一点不高深,纯属看思路
也没啥好说的,随便看看吧
我游戏功能要实现的功能还有一大堆,先闪了
写得不好勿喷
本文链接:http://www.cnblogs.com/shenggege/p/4251123.html
C# 浮点转时间的更多相关文章
- mysql基本介绍和优化技巧
一. mysql框架和基本介绍 1. 框架图 更详细: 2. 存储引擎 MYISAM与INNODB对比: MYISAM:mysql5.1及以前版本的默认存储引擎.支持全文检索,压缩,表级锁等,但不支持 ...
- 【转】Java 中字符串的格式化
原文网址:http://blog.csdn.net/aimartt/article/details/8307237 参考资料:JDK API 1.6.0 中文文档 1.格式字符串语法 产生格式化输出的 ...
- 再探Java基础——String.format(String format, Object… args)的使用
最近看到类似这样的一些代码:String.format("参数%s不能为空", "birthday"); 以前还没用过这功能不知咐意思,后研究了一下,详细讲解如 ...
- Mysql学习(慕课学习笔记3)数据类型
数据类型 数据类型是指.存储过程参数.表达式和局部变量的数据特征, 它决定了数据的存储格式,代表了不同的信息类型. 整型 Tinyint 有符号位 -128到127 无符号位 0到255 ...
- java String.Format详解
JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String format, Object... args) 使用指定的语言 ...
- Vertica: 基于DBMS架构的列存储数据仓库
介绍 Vertica(属于HP公司),是一个基于DBMS架构的数据库系统,适合读密集的分析型数据库应用,比方数据仓库,白皮书中全名称为VerticaAnalytic Database.从命名中也可以看 ...
- String.Format in Java and C#
原文:String.Format in Java and C# JDK1.5中,String类新增了一个很有用的静态方法String.format(): format(Locale l, String ...
- java基础-day28
第05天 MySQL 今日内容介绍 u 数据库的概述 u MySQL和SQLyog的安装和使用 u SQL语句 第1章 数据库的概述 1.1 数据库的概述 1.1.1 概述 l 什么是数据库 ...
- mysql数据库的笔记
增删改查置顶: 插入数据: 基本语法 : insert into [表名](字段名1,字段名2……) values(记录1),(记录2): insert into [表名] values(记录1),( ...
随机推荐
- Codeforces 962D - Merge Equals
链接: http://codeforces.com/problemset/problem/962/D 题意: 给出一个整数序列.选择其中最小且出现两次(或以上)的数,把最左边的两个从序列中移除,然后把 ...
- 【[HAOI2009]逆序对数列】
发现自己学了几天splay已经傻了 其实还是一个比较裸的dp的,但是还是想了一小会,还sb的wa了几次 首先这道题的状态应该很好看出,我们用\(f[i][j]\)表示在前\(i\)个数中(即\(1-i ...
- webpack导学
随着前端工程越来越复杂,单独建几个文件写业务代码,这样的方式已经无法保证项目的可维护性了. 所以我们就想把不同的逻辑拆成模块,然后分开引入这些模块,每个模块自己做自己的事情,这样就可以保证项目的可维护 ...
- HDU 1698 【线段树,区间修改 + 维护区间和】
题目链接 HDU 1698 Problem Description: In the game of DotA, Pudge’s meat hook is actually the most horri ...
- 20145223 杨梦云 《网络对抗》shellcode实验+return-to-libc实验
20145223 杨梦云 <网络对抗>shellcode实验+return-to-libc实验 shellcode注入实践 Shellcode基础知识 ·Shellcode实际是一段代码( ...
- SpringMVC关于请求参数乱码问题
String names =request.getParameter("name") request主要接收的参数是form提交 form提交有的时候会伴随着乱码,该乱码的格式为I ...
- RabbitMQ之五种消息模型
首先什么是MQ MQ全称是Message Queue,即消息对列!消息队列是典型的:生产者.消费者模型.生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息.因为消息的生产和消费都是异步的,而 ...
- 动态截屏软件jpg格式
软件下载地址:https://github.com/weibanggang/jiedu 开始截屏 保存路径 生成图片 预览
- MacBook常用快捷键
MacBook常用快捷键: 1. 窗口操作: cmd+n 新建一个窗口/文件. cmd+m 窗口最小化. cmd+w 关闭当前窗口/文件. 2. 程序操作: cmd+q 退出当前程序,后台不运行该程序 ...
- STM32之系统时钟
转载:http://www.openedv.com/posts/list/302.htm 时钟系统是处理器的核心,所以在学习STM32所有外设之前,认真学习时钟系统是必要的,有助于深入理解STM32. ...