关于c#:我如何将Date转换为String格式


How I can convert Date to String formate.?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I calculate relative time?

我想将日期值转换为字符串格式,就像YouTube视频上载时间或日期一样,例如2年前、1个月前或8小时前,这样假设我有简单的日期作为输出。

谢谢您。。!!


1
2
3
4
5
DateTime now = DateTime.Now;

DateTime older = //orignal date time;

TimeSpan difference = now.Subtract(older);

一旦你把你的时间跨度计算年,月,日和时间跨度为基础的决策属性类等


你需要减日期从目前的日期。这将给你一个代表值之间的差异是TimeSpanA两次。你要写一个逻辑"这TimeSpan可读文本在您自己的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TimeSpan d = DateTime.Now - someDate;
if (d.TotalSeconds < 59)
{
  return d.TotalSeconds +" second(s) ago";
}
else if (d.TotalMinutes < 59)
{
  return d.TotalMinutes +" minute(s) ago";
}
else if (d.TotalHours < 23)
{
  return d.TotalHours +" hour(s) ago";
}

// days, weeks, months and years. It's up to you.


我写这个功能的一些年前的样子,那就是你的肛门。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public static string GetTimeElpased(int secondsElpased, int minutesElpased, int hoursElpased,
    int daysElpased, int monthsElpased, int yearsElpased)
{
    if (secondsElpased < 30)
        return"few seconds ago";

    if (minutesElpased < 1)
        return secondsElpased +" seconds ago";

    if (minutesElpased < 5)
        return"few minutes ago";

    if (hoursElpased < 1)
        return minutesElpased +" minutes ago";

    if (hoursElpased < 5)
        return"few hours ago";

    if (daysElpased < 1)
        return hoursElpased +" hours ago";

    if (daysElpased == 1)
        return"yesterday";

    if (monthsElpased < 1)
    return daysElpased +" days ago";

    if (monthsElpased == 1)
        return"month ago";

    if (yearsElpased < 1)
        return monthsElpased +" months ago";

    string halfYear = (monthsElpased >= 6) ?" and half" :"";
    if (yearsElpased == 1)
        return"year" + halfYear +" ago";

    return yearsElpased +" years ago";
}

更多详细的功能完整的/湖的其他问题。(c #相对时间计算)


我想你要找什么样timeago algorithim

你可以使用像这样的东西。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    static void Main(string[] args)
    {
        Console.WriteLine(GetDifferenceDate(new DateTime(2011, 11, 25, 10, 30, 2),
            new DateTime(2012, 1, 2, 6, 3, 5)));
    }

    static string GetDifferenceDate(DateTime date1, DateTime date2)
    {
        if (DateTime.Compare(date1, date2) >= 0)
        {
            TimeSpan ts = date1.Subtract(date2);
            return string.Format("{0} days, {1} hours, {2} minutes, {3} seconds",
                ts.Days, ts.Hours, ts.Minutes, ts.Seconds);
        }
        else
            return"Not valid";
    }

有一个类似的问题:在你的计算器,必看

在C #相对时间计算

更多细节:湖

www.daniweb.com http:/ / / / /线程的软件开发/ 127213 CSharp

希望这帮助。


我觉得我的家庭作业时,我在这里是一个例子:下面一个DateTime对象扩展方法的任务,比较它的DateTime。现在返回适当的描述如何长前是约会。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public static class Ext
{
    public static string HowMuchAgo(this DateTime dt)
    {
        var difference = (DateTime.Now - dt);
        if (difference < TimeSpan.FromSeconds(.5))
        {
            return"Just now!";
        }
        else if (difference < TimeSpan.FromMinutes(1))
        {
            return difference.Seconds +" seconds ago.";
        }
        else if (difference < TimeSpan.FromHours(1))
        {
            return difference.Minutes +" minutes and" + difference.Seconds +" seconds ago.";
        }
        else if (difference < TimeSpan.FromDays(1))
        {
            return difference.Hours +" hours and" + difference.Minutes +" minutes and" + difference.Seconds +" seconds ago.";
        }
        else if (difference > TimeSpan.FromDays(1) && difference < TimeSpan.FromDays(2))
        {
            return"Yesterday at" + dt.ToShortTimeString();
        }
        else
        {
            return"On" + dt.ToString();
        }
    }
}

如果你调用get()datetime.now.howmuchago你"现在!"当然你可以修改它,添加更多的if语句中得到更多的粒度或修改说明什么是叙述性的描述。


看看这个:自定义日期和时间格式字符串


在启动http://。/en-US /图书馆/ system.datetime.aspx

http://social.msdn.microsoft.com /搜索/美国?查询= timespan &;x = 0和y = 0 &;

我相信你是试图做的是确定使用之间的差异timespan现在日期被张贴的东西。你不得不做一些与结果,但你可以算多少小时/分钟/天/年,有不同的。