ОтносительнаяДатаСинхронизации (БСП)

Автор: 1С
ОбщийМодуль.ОбменДаннымиСервер
БСП

Относительная дата синхронизации. Возвращает представление относительной даты синхронизации.

// Возвращает представление относительной даты синхронизации.
//
// Параметры:
//  ДатаСинхронизации - Дата - Абсолютная дата синхронизации данных.
//
// Возвращаемое значение:
//  Строка - представление относительной даты синхронизации.
//    *Никогда             (Т = пустая дата).
//    *Сейчас              (Т < 5 мин)
//    *5 минут назад       (5 мин  < Т < 15 мин)
//    *15 минут назад      (15 мин  < Т < 30 мин)
//    *30 минут назад      (30 мин  < Т < 1 час)
//    *1 час назад         (1 час  < Т < 2 час)
//    *2 часа назад        (2 час  < Т < 3 час).
//    *Сегодня, 12:44:12   (3 час  < Т < вчера).
//    *Вчера, 22:30:45     (вчера  < Т < позавчера).
//    *Позавчера, 21:22:54 (позавчера  < Т < поза-позавчера).
//    *<12 Марта 2012г.>   (поза-позавчера < Т).
//
Функция ОтносительнаяДатаСинхронизации(Знач ДатаСинхронизации) Экспорт
	
	Если Не ЗначениеЗаполнено(ДатаСинхронизации) Тогда
		
		Возврат НСтр("ru = 'Никогда'");
		
	КонецЕсли;
	
	ДатаТекущая = ТекущаяДатаСеанса();
	
	Интервал = ДатаТекущая - ДатаСинхронизации;
	
	Если Интервал < 0 Тогда // 0 мин
		
		Результат = Формат(ДатаСинхронизации, "ДЛФ=DD");
		
	ИначеЕсли Интервал < 60 * 5 Тогда // 5 мин
		
		Результат = НСтр("ru = 'Сейчас'");
		
	ИначеЕсли Интервал < 60 * 15 Тогда // 15 мин
		
		Результат = НСтр("ru = '5 минут назад'");
		
	ИначеЕсли Интервал < 60 * 30 Тогда // 30 мин
		
		Результат = НСтр("ru = '15 минут назад'");
		
	ИначеЕсли Интервал < 60 * 60 * 1 Тогда // 1 час
		
		Результат = НСтр("ru = '30 минут назад'");
		
	ИначеЕсли Интервал < 60 * 60 * 2 Тогда // 2 часа
		
		Результат = НСтр("ru = '1 час назад'");
		
	ИначеЕсли Интервал < 60 * 60 * 3 Тогда // 3 часа
		
		Результат = НСтр("ru = '2 часа назад'");
		
	Иначе
		
		КоличествоДнейРазницы = КоличествоДнейРазницы(ДатаСинхронизации, ДатаТекущая);
		
		Если КоличествоДнейРазницы = 0 Тогда // сегодня
			
			Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Сегодня, %1'"), Формат(ДатаСинхронизации, "ДЛФ=T"));
			
		ИначеЕсли КоличествоДнейРазницы = 1 Тогда // вчера
			
			Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Вчера, %1'"), Формат(ДатаСинхронизации, "ДЛФ=T"));
			
		ИначеЕсли КоличествоДнейРазницы = 2 Тогда // позавчера
			
			Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Позавчера, %1'"), Формат(ДатаСинхронизации, "ДЛФ=T"));
			
		Иначе // давно
			
			Результат = Формат(ДатаСинхронизации, "ДЛФ=DD");
			
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Результат;
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ДатаЗапретаПоОписанию (БСП)

ПредставлениеДатыСинхронизации (БСП)

ПолучитьБлижайшуюДатуСобытияПоРасписанию (БСП)

ПриЗаполненииСпискаРеквизитовИсточникаСДатамиДляНапоминания (БСП)

ДатаПоследнейУспешнойСинхронизации (БСП)

СведенияОСинхронизации (БСП)

СмещениеВремениСервера (БСП)

НапомнитьДоВремениПредмета (БСП)

УдалитьНастройкуСинхронизации (БСП)

1С Менеджер конфигураций