最近在做一个聊天功能,并且要在用户列表上显示最后聊天时间,类似QQ的日期显示。 问群里和百度后,群里没人鸟我,网上也没搜到,最后苦于无奈只能自己封装了。 不过话说回来了,大哥与小弟的区别就是大哥写好封装类让小弟去用。和编译器差不多原理,微软为我们封装了一个又一个类库,然后我们点点就出来了。但这样不能锻炼我们,所以提倡大家多做封装。好了,废话少说,直接上代码,如有不正确的地方欢迎指出!~嘿嘿

ChateTimeHelper.cs

 /// <summary>
/// 聊天日期展示帮助类
/// </summary>
public class ChateTimeHelper
{ /// <summary>
///不是本年------则返回具体年-月-日
///是本年,不是今天和昨天------就显示 月-日
///昨天----则显示昨天
///今天----则显示 时-分
/// </summary>
/// <param name="ct">聊天时间</param>
/// <returns></returns>
public static string GetChateTimeInfo(DateTime ct)
{
DateTime dtNow = DateTime.Now;
int year=dtNow.Year;
int month=dtNow.Month;
int day=dtNow.Day;
TimeSpan ts = dtNow - ct;
if (ct.AddDays().Year == year && ct.AddDays().Month == month && ct.AddDays().Day == day)//加一天如果和现在年月日相同,证明是昨天
{
return "昨天";
}
else if (ct.Year==year&&ct.Month==month&&ct.Day==day)//年月日相等则证明是今天发的消息
{
string hour = ct.Hour < ? "" + ct.Hour.ToString() : ct.Hour.ToString();
string minute = ct.Minute < ? "" + ct.Minute.ToString() : ct.Minute.ToString();
return hour + ":" + minute;
}
else if (ct.Year == year)
{
return ct.Month + "-" + ct.Day;
}
else //其余的显示月日
{
return ct.Year + "-" + ct.Month + "-" + ct.Day;
}
}
}

调用上面的类就会获得类似下面的这种结果:

获取类似QQ似的时间,昨天或具体日期的更多相关文章

  1. 日期格式化(类似QQ邮箱中的邮件列表显示日期)

    日期格式化(类似QQ邮箱中的邮件列表显示日期) public static string FormatDateDisplay(DateTime _datetime) { var ts = DateTi ...

  2. SQL Server 获取最后一天(指定时间的月最后一天日期)

    /* author OceanHo @ 2015-10-23 10:14:21 获取指定时间字符串指定日期的月最后一天日期 */ IF OBJECT_ID('get_LastDayDate') IS ...

  3. C# 获取类似java gettime() 的时间格式

    今天做了一个面向Java的接口,需要做到时间的统一,C#提供了System.DateTime.UtcNow 但是需要自己做下处理,记录一下自己的方法, 留着以后查阅方便. /// <summar ...

  4. 使用plupload做一个类似qq邮箱附件上传的效果

    公司项目中使用的框架是springmvc+hibernate+spring,目前需要做一个类似qq邮箱附件上传的功能,暂时只是上传小类型的附件 处理过程和解决方案都需要添加附件,处理过程和解决方案都可 ...

  5. [C# 网络编程系列]专题九:实现类似QQ的即时通信程序

    转自:http://www.cnblogs.com/zhili/archive/2012/09/23/2666987.html 引言: 前面专题中介绍了UDP.TCP和P2P编程,并且通过一些小的示例 ...

  6. 在类似qq或者微信聊天中。如何根据不同的手机发送图片

    原文:在类似qq或者微信聊天中.如何根据不同的手机发送图片   前一段时间,公司自己要求做多客服开发,但是对于发送图片这一块,当时很苦恼,我用自己的手机(米2)测试,不管是本地,还是云相册,最新照片. ...

  7. WinForm实现类似QQ停靠,显示隐藏过程添加特效效果

    原文:WinForm实现类似QQ停靠,显示隐藏过程添加特效效果 这可能是个老题长谈的问题了,只是在项目中会用到这个效果,所以今天做个记录.大家见了别喷我.在项目中的需求是这样的. 打开程序,在屏幕的右 ...

  8. 详解C# 网络编程系列:实现类似QQ的即时通信程序

    https://www.jb51.net/article/101289.htm 引言: 前面专题中介绍了UDP.TCP和P2P编程,并且通过一些小的示例来让大家更好的理解它们的工作原理以及怎样.Net ...

  9. 转:【专题九】实现类似QQ的即时通信程序

    引言: 前面专题中介绍了UDP.TCP和P2P编程,并且通过一些小的示例来让大家更好的理解它们的工作原理以及怎样.Net类库去实现它们的.为了让大家更好的理解我们平常中常见的软件QQ的工作原理,所以在 ...

随机推荐

  1. Android 自定义控件之圆形扩散View(DiffuseView)

    实现效果 使用 属性方法 代码 源码下载 参考链接 实现效果 使用 XML中: <com.airsaid.diffuseview.widget.DiffuseView android:id=&q ...

  2. hdu2236 无题II 最大匹配 + 二分搜索

    中文题目,题意大家都明白. 看到“不同的行和列”就觉得要用二分匹配来做.要求最大值与最小值的差值最小,是通过枚举边的下限和上限来完成. 枚举过程是这样的,在输入的过程可以记录下边权的最大值MAX和最小 ...

  3. 时空上下文视觉跟踪(STC)

    论文的关键点是对时空上下文(Spatio-Temporal Context)信息的利用.主要思想是通过贝叶斯框架对要跟踪的目标和它的局部上下文区域的时空关系进行建模,得到目标和其周围区域低级特征的统计 ...

  4. <轉>APUE:mmap函数

    起初 看过一遍内存映射I/O,意思大概是懂了,就是直接操作文件再而直接通过缓冲区来操作,减少一些read.write调用所花费的时间.加上文中给出一个copy的例子,意思也好理解的.不过困扰的来了,我 ...

  5. 插入排序InsertSort

    插入排序:从第二个数开始  一直和前面的数组比较 获得排序定位 ​ 代码 /** *插入排序 */ public class InsertSort { public static void inser ...

  6. mysql_connect() 不支持 请检查 mysql 模块是否正确加载

    php的扩展 没有配置好! 打开php.ini文件: 搜索pdo_mysql和curl ;extension=php_curl.dll ;extension=pdo_mysql.dll 然后把2者前面 ...

  7. Disconf入门指南(1)

    Disconf简介 参考: https://github.com/knightliao/disconf/wiki/TutorialSummary 在一个分布式环境中,同类型的服务往往会部署很多实例.这 ...

  8. postman测试实例--断言

    postman测试实例--断言 让我们来看看postman测试的一些例子. 其中大部分是作为内部postman片段. 大多数测试是为单行的JavaScript语句一样简单. 只要你想一个请求,你可以有 ...

  9. jenkins 打包 springboot

    遇到的坑 jdk maven  可以自己配置 也可以让jenkins生成 jenkins创建的项目打的包在  /var/lib/jenkins/jobs/ 需要手动去下载pom中的jar  吧pom复 ...

  10. flask_sqlalchemy和sqlalchemy联系区别及其使用方式

    ### 使用SQLAlchemy去连接数据库: 1.使用SQLALchemy去连接数据库,需要使用一些配置信息,然后将他们组合成满足条件的字符串:HOSTNAME = '127.0.0.1'PORT ...