C# – X Saat Önce, X Dakika Önce Gibi Metinler Yazdırmak

C# - X Saat Önce, X Dakika Önce Gibi Metinler Yazdırmak

Aşağıdaki kod yardımı ile tarihleri "10 dakika önce", "dün", "bir ay önce" gibi metinlere çevirebilirsiniz.






const int second = 1;
                const int minute = 60 * second;
                const int hour = 60 * minute;
                const int day = 24 * hour;
                const int month = 30 * day;

                var ts = new TimeSpan(DateTime.Now.Ticks - UpdatedTime.Ticks);
                var delta = Math.Abs(ts.TotalSeconds);

                if (delta < 1 * minute)
                {
                    return ts.Seconds == 1 ? "bir saniye önce" : ts.Seconds + " saniye önce";
                }
                if (delta < 2 * minute)
                {
                    return "bir dakika önce";
                }
                if (delta < 45 * minute)
                {
                    return ts.Minutes + " dakika önce";
                }
                if (delta < 90 * minute)
                {
                    return "bir saat önce";
                }
                if (delta < 24 * hour)
                {
                    return ts.Hours + " saat önce";
                }
                if (delta < 48 * hour)
                {
                    return "dün";
                }
                if (delta < 30 * day)
                {
                    return ts.Days + " gün önce";
                }
                if (delta < 12 * month)
                {
                    var months = Convert.ToInt32(Math.Floor((double)ts.Days / 30));
                    return months <= 1 ? "geçen ay" : months + " ay önce";
                }
                else
                {
                    var years = Convert.ToInt32(Math.Floor((double)ts.Days / 365));
                    return years <= 1 ? "geçen sene" : years + " sene önce";
                }