最近在.net项目方面的时候遇到的一个时间格式的转换问题,如何将已经上机的时间转换出来?更加简洁明了美观?

我的逻辑是这样的,客户上机登录后得出登录时间,客户已用的上机时间等于现在时间减去客户上机的登录时间

(已用时间=现在时间-上机登录时间)可得出来的时间非常的不美观。

通过网上查询得出了IndexOf函数和substring()函数的结合使用得出了时间格式的转换,转换后的结果如下所示

这样是否美观多了。

下面为代码展示:

public void TimeBilling(){Facade.TimeBillingFacade timeBillingFacade = new Facade.TimeBillingFacade();List<Entity.CustomerActivation> list1 = customerActivationFacade.GetCustomerActivationList1();//返回当前已上机用户的卡号for (int i = 0; i < list1.Count; i++){string identityNo = list1[i].IdentityNo;List<Entity.CustomerActivation> list = customerActivationFacade.GetCustomerActivationByIdentityNo(identityNo);//返回当前已上机用户的开始上机时间for (int j = 0; j < list.Count; j++){string BeginTime = list[j].BeginTime;string Time = Convert.ToString(DateTime.Now - Convert.ToDateTime(BeginTime));//此时间为用户的上机已用时间//转换时间格式int a = Time.IndexOf(':');//使用IndexOf()函数从前往后找出时间冒号:在时间Time中的索引位置,并将返回结果赋值给int型变量aint price = Convert.ToInt32(Time.Substring(a + 1, 2));//Time.Substring(a + 1, 2)为截取从a+1到2位以内的字符串int day = Convert.ToInt32(Time.Substring(0, 1)) * 24;int hour = Convert.ToInt32(Time.Substring(a - 2, 2));string Hour = Convert.ToString(day + hour);string time = Hour + "时" + Time.Substring(a + 1, 2) + "分";//Time.Substring(a + 1, 2)为截取从a+1到2位以内的字符串//timeBillingFacade.TimeBilling(identityNo, time, lastMoney);//将当前已经上机登录用户的已用时间传值至外观层double rate;   //定义费率string PriceId = Convert.ToString(TestHelpCommon.PriceId);List<Entity.Customer> list2 = timeBillingFacade.GetTimeBillingBycboprice(PriceId);//查询是否为会员if (TestHelpCommon.CustomerType(identityNo)){rate = Convert.ToDouble(list2[0].VIPUsers);}else{rate = Convert.ToDouble(list2[0].OrdinaryUsers);}//判断余额是否充足if (price % 6 == 0)   //每6分钟进行一次扣费,上机不满6分钟不计费{if (Convert.ToDouble(list[j].LastMoney) > 0){double lastMoney = Convert.ToDouble(list[j].LastMoney) - rate / 10;timeBillingFacade.TimeBilling(identityNo, time, lastMoney);//将当前已经上机登录用户的已用时间传值至外观层}else{//当余额不足时自动结账下机double LastMoney = Convert.ToDouble(list[j].LastMoney);TestHelpCommon.CheckOut(identityNo, LastMoney);}}}}}

下面为我网上所找的资料。

IndexOf()

查找字串中指定字符或字串首次出现的位置,返首索引值,如: 
str1.IndexOf("字"); //查找“字”在str1中的索引值(位置) 
str1.IndexOf("字串");//查找“字串”的第一个字符在str1中的索引值(位置) 
str1.IndexOf("字",start,end);//从str1第start+1个字符起,查找end个字符,查找“字”在字符串STR1中的位置[从第一个字符算起]注意:start+end不能大于str1的长度

indexof参数为string,在字符串中寻找参数字符串第一次出现的位置并返回该位置。如string s="0123dfdfdf";int i=s.indexof("df");这时i==4。 
如果需要更强大的字符串解析功能应该用Regex类,使用正则表达式对字符串进行匹配。

indexof() :在字符串中从前向后定位字符和字符串;所有的返回值都是指在字符串的绝对位置,如为空则为- 1

string test="asdfjsdfjgkfasdsfsgfhgjgfjgdddd";

test.indexof(’d’)       =2            //从前向后 定位 d 第一次出现的位置
   test.indexof(’d’,1)     =2           //从前向后 定位 d 从第三个字符串 第一次出现的位置
   test.indexof(’d’,5,2)   =6      //从前向后 定位 d 从第5 位开始查,查2位,即 从第5位到第7位;

lastindexof() :在字符串中从后向前定位字符和字符串;、
用法和 indexof() 完全相同。

以下为自己学习理解时所敲的控制台程序

====================================================================

IndexOfAny ||lastindexofany

他们接受字符数组做为变元,其他方法同上,返回数组中任何一个字符最早出现的下标位置

如下

char[] bbv={’s’,’c’,’b’};
         string abc = "acsdfgdfgchacscdsad";
        
         Response.Write(abc.IndexOfAny(bbv))=1
         Response.Write(abc.IndexOfAny(bbv, 5))=9
         Response.Write(abc.IndexOfAny(bbv, 5, 3))=9

lastindexofany 同上。
====================================================================

substring() 用法

string a="aadsfdjkfgklfdglfd"

a.substring(5)      //截取从第五位以后的所有字符串

a.substring(0,5)     //截取从第0到第5 以内的所有字符串

以下为自己学习理解时所敲的控制台程序

C#中IndexOf的用法相关推荐

  1. indexof java 用法_java中indexof的用法

    indexOf()的用法,具体是什么意思?? indexOf()的意思:查找一个字符串中,第一次出现指定字符串的位置. indexOf()的用法: indexOf(int,ch) 先看第一个index ...

  2. Java中indexof()的用法

    Java中indexof()的用法 indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置.如果没有找到子字符串,则返回-1. 如果 startindex 是负数,则 sta ...

  3. js中indexOf的用法详解

    js中indexOf的用法详解 String.IndexOf 方法 (Char, [startIndex], [count]) 报告指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检 ...

  4. JAVA中indexOf函数用法

    int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcf ...

  5. Java||String类中indexOf的用法

    indexOf的四种用法: int indexOf(int ch)  返回指定字符在此字符串中第一次出现处的索引. int indexOf(int ch, int fromIndex)  返回在此字符 ...

  6. indexof java_Java中indexOf的用法

    indexOf有四种用法: 1.indexOf(int ch) 在给定字符串中查找字符(ASCII),找到返回字符数组所对应的下标找不到返回-1 2.indexOf(String str)在给定符串中 ...

  7. java string中indexOf()常用用法

    Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. 2.int indexOf(String st ...

  8. 怎样理解js数组中indexOf()的用法与lastIndexOf

    第一首先你运行一下它的js代码: var arr1=["大学","中庸","论语","孟子","诗" ...

  9. c中indexof的用法

    转自:http://www.pinlue.com/article/2020/03/3100/2810073893913.html

最新文章

  1. 2021年昆明师专附中高考成绩查询,昆明高中4大名校,2019高考成绩厉害了,快看看是哪些?...
  2. linux 自定义外壳,管道在自定义的linux外壳
  3. memcached的应用和兼容程序
  4. 如何控制dedecms描述的长度?
  5. 各类木材强度_木材的力学性能
  6. 上海大学计算机组成原理12,上海大学计算机组成原理报告1.doc
  7. java插入数据库字符串拼接_JAVA字符串怎么连接?
  8. Zookeeper实践与应用-- Nginx负载均衡差异
  9. mysql - 一键安装方式- 课堂版
  10. Linux之父新年首次“炮轰”:英特尔在扼杀整个 ECC 行业
  11. aardio - 【库】虚表增强版
  12. qunee for html5,Qunee for HTML5(二)
  13. 想在Win11上安装数据库?以下连招,轻松解决(全网详细巨无霸)
  14. 通过Redis入侵服务器
  15. html缩小照片尺寸像素不变,怎么修改照片像素,但又不改变照片大小呢?——解决照片因大小无法上传的方案...
  16. 很邪门的事,你知道多少?
  17. 有关statistics
  18. mysql 设置 0、1 用什么数据类型_不断精炼核心知识点,终于能把MySQL讲懂了
  19. 人脸识别门禁为何倍受青睐?
  20. 【IntelliJ IDEA】如何汉化成简体中文

热门文章

  1. Ubuntu编译ijkplayer so库并播放本地raw/assets文件
  2. IntelliJ IDEA - 闪退解决方案
  3. 这三个SCI期刊快速高录用!AI、多模态、物联网等主题,因子稳中看升
  4. HOG+SVM实现交通路标识别
  5. Xilinx的FIR IP核使用方法(参数重构改变滤波器形式)
  6. 怎么把Excel转换成Word文档?一分钟就能教会你
  7. 中国5大新型IT技术社区与5大传统IT技术社区,你都知道哪些?
  8. (附源码)spring boot动力电池数据管理系统 毕业设计 301559
  9. 【CISSP备考笔记】第6章:安全评估与测试
  10. vue中打开一个新页面