zoukankan      html  css  js  c++  java
  • How to Convert a Date Time to “X minutes ago” in C# z

    http://www.codeproject.com/Articles/770323/How-to-Convert-a-Date-Time-to-X-minutes-ago-in-Csh

    In one of our previous posts, we saw how can we convert a Date Time value to “X Minutes Ago” feature using jQuery. Today, in this post, we will see how we can achieve the same functionality in C#. In this post, we will write a C# function that will take a DateTime as a parameter and return the appropriate string.

    The function to convert DateTime to a “Time Ago” string is as below:

    public static string TimeAgo(DateTime dt)
    {
        TimeSpan span = DateTime.Now - dt;
        if (span.Days > 365)
        {
            int years = (span.Days / 365);
            if (span.Days % 365 != 0)
                years += 1;
            return String.Format("about {0} {1} ago", 
            years, years == 1 ? "year" : "years");
        }
        if (span.Days > 30)
        {
            int months = (span.Days / 30);
            if (span.Days % 31 != 0)
                months += 1;
            return String.Format("about {0} {1} ago", 
            months, months == 1 ? "month" : "months");
        }
        if (span.Days > 0)
            return String.Format("about {0} {1} ago", 
            span.Days, span.Days == 1 ? "day" : "days");
        if (span.Hours > 0)
            return String.Format("about {0} {1} ago", 
            span.Hours, span.Hours == 1 ? "hour" : "hours");
        if (span.Minutes > 0)
            return String.Format("about {0} {1} ago", 
            span.Minutes, span.Minutes == 1 ? "minute" : "minutes");
        if (span.Seconds > 5)
            return String.Format("about {0} seconds ago", span.Seconds);
        if (span.Seconds <= 5)
            return "just now";
        return string.Empty;
    }

    You can call the function something like below:

    Console.WriteLine(TimeAgo(DateTime.Now));
    Console.WriteLine(TimeAgo(DateTime.Now.AddMinutes(-5)));
    Console.WriteLine(TimeAgo(DateTime.Now.AddMinutes(-59)));
    Console.WriteLine(TimeAgo(DateTime.Now.AddHours(-2)));
    Console.WriteLine(TimeAgo(DateTime.Now.AddDays(-5)));
    Console.WriteLine(TimeAgo(DateTime.Now.AddMonths(-3)));

    The output looks something like below:

    datetime-time-ago-C#

    Hope this post helps you. Keep learning and sharing!

  • 相关阅读:
    P1030 求先序排列 P1305 新二叉树
    spfa
    Clairewd’s message ekmp
    Cyclic Nacklace hdu3746 kmp 最小循环节
    P1233 木棍加工 dp LIS
    P1052 过河 线性dp 路径压缩
    Best Reward 拓展kmp
    Period kmp
    Substrings kmp
    Count the string kmp
  • 原文地址:https://www.cnblogs.com/zeroone/p/3724718.html
Copyright © 2011-2022 走看看