Преобразование DateTime в эквивалент Минуты в .net mvc? [Дубликат]

Старый вопрос без решения data.table. Итак, здесь идет ...

Используя .N

library(data.table)
DT <- data.table(df)
DT[, .N, by = list(year, month)]
50
задан PJW 26 January 2012 в 13:41
поделиться

5 ответов

Попробуйте

DateTime startTime = varValue
DateTime endTime = varTime

TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (minutes): " + span.TotalMinutes );
84
ответ дан brendan 20 August 2018 в 23:17
поделиться
  • 1
    Это хороший ответ, но дает 0 на span.Minutes, когда разница между двумя временами превышает 1 час (т. Е. 60 минут и более) – Malik Asif 31 January 2017 в 15:09
  • 2
    @MalikAsif. Я просто пробовал это с промежутком в 61 минуту, и я получаю 1 час и 1 минуту, как и ожидалось. Если размах составлял ровно 60 минут, то да, минуты были бы равны нулю. Вы думали о TotalMinutes()? – Jim 31 January 2017 в 17:27
  • 3
    Да @ Jim точно, это то, о чем я говорил. Вышеупомянутый момент состоит в том, что вопрос касался общего количества минут. – Malik Asif 31 January 2017 в 17:59
  • 4
    НЕ ПРАВДА. span.Minutes возвращает число [0..59]. Вместо этого используйте span.TotalMinutes – Sten Petrov 1 February 2017 в 06:16
  • 5
    – tjmoore 12 May 2017 в 13:21
  • 6

Что случилось с varTime.TotalMinutes? :)

2
ответ дан Alexander R 20 August 2018 в 23:17
поделиться

В коде quesion вы неправильно используете TimeSpan.FromMinutes. См. Документацию MSDN для TimeSpan.FromMinutes, которая дает следующую сигнатуру метода:

public static TimeSpan FromMinutes(double value)

, поэтому следующий код не будет компилировать

var intMinutes = TimeSpan.FromMinutes(varTime); // won't compile

Вместо этого вы можете использовать свойство TimeSpan.TotalMinutes для выполнения этой арифметики. Например:

TimeSpan varTime = (DateTime)varFinish - (DateTime)varValue; 
double fractionalMinutes = varTime.TotalMinutes;
int wholeMinutes = (int)fractionalMinutes;
8
ответ дан Elijah Lofgren 20 August 2018 в 23:17
поделиться

Если разница между endTime и startTime больше или равна 60 минутам, инструкция: endTime.Subtract(startTime).Minutes; всегда будет возвращать (minutesDifference % 60). Очевидно, что это нежелательно, когда мы говорим только о минутах (а не о часах здесь). Вот несколько способов, если вы хотите получить total number of minutes (в разных типах):

// Default value that is returned is of type *double* 
double double_minutes = endTime.Subtract(startTime).TotalMinutes; 
int integer_minutes = (int)endTime.Subtract(startTime).TotalMinutes; 
long long_minutes = (long)endTime.Subtract(startTime).TotalMinutes; 
string string_minutes = (string)endTime.Subtract(startTime).TotalMinutes; 
1
ответ дан Malik Asif 20 August 2018 в 23:17
поделиться
double minutes = varTime.TotalMinutes;
int minutesRounded = (int)Math.Round(varTime.TotalMinutes);

TimeSpan.TotalMinutes : общее количество минут, представленных этим экземпляром.

31
ответ дан Tim Schmelter 20 August 2018 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: