Вычислить процент из двух timestamp

Рейтинг: 0Ответов: 2Опубликовано: 14.03.2015

Есть 2 timestamp:

timeStart = 1426373964
timeEnd   = 1426719564

Если текущее время time() > timeStart, нужно высчитать, сколько уже прошло времени до timeEnd в процентах.

Рассуждал так:

100% это 1426719564

time() - это некоторый x% от 1426719564, чтобы его найти, я делаю:

$new = (time() * 100) / timeEnd

Но что-то не то...

Ответы

▲ 3Принят

Предлагаю сделать это так:

  • 100% = (timeEnd - timeStart)
  • Х% = (time() - timeStart)

Откуда Х вычисляется как: Х = (100 * (time() - timeStart))/(timeEnd - timeStart)

▲ 2

Я так и не понял, на каком языке надо, в тэгах и C++, и C#... Видимо, надо сам принцип. Ну вот на C#, например:

using System;

class Program
{
    static void Main(string[] args)
    {
        DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
        DateTime startTime = unixEpoch.AddSeconds(1426373964);
        double seconds = (double)(1426719564 - 1426373964);
        do
        {
            Console.WriteLine("{0:P}", (DateTime.Now - startTime).TotalSeconds / seconds);
        }
        while (Console.ReadKey().Key != ConsoleKey.Escape);
    }
}