rediffusion
11/2/2017 - 1:15 PM

Мини-справочник по работе с датами

Немного инфы в WORD - Вопрос-Ответ (поддержка)

//Добавляем в 'Общий код':
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Text.RegularExpressions;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;
using System.Net;
using System.Net.Sockets;
 
namespace ZennoLab.OwnCode
{
    /// <summary>
	/// A simple class of the common code
	/// </summary>
	public class CommonCode
	{
		/// <summary>
		/// Lock this object to mark part of code for single thread execution
		/// </summary>
		public static object SyncObject = new object();
 
		// Insert your code here
	}
}
//Добавляем в 'Директивы Using':
using System.Net;
using System.Net.Sockets;
//Приведение к формату DateTime
string strDateTimeToConvert = "01.01.2017 01:01:01";

DateTime dtOne;
if(!DateTime.TryParse(strDateTimeToConvert, out dtOne)) {
    project.SendErrorToLog("Ошибка преобразования в дату и время");
}

//Форматирование даты и времени - http://aione.ru/formatirovanie-datyi-i-vremeni-v-csharp/
DateTime dtNot = DateTime.Now;
string strFormattedNow = DateTime.Now.ToString("dd.MM.yyyy, dddd");
project.SendInfoToLog("Демо форматирования даты: " + strFormattedNow);

//Увеличение или уменьшение даты
DateTime dtYesterday = DateTime.Now.AddDays(-1);
project.SendInfoToLog("Вчера был день недели: " + dtYesterday.ToString("dddd"));

//Определение того что время находится в диапазоне
TimeSpan tStart = new TimeSpan(8, 0, 0); //8 утра
TimeSpan tFinish = new TimeSpan(23, 0, 0); //11 вечера
TimeSpan tNow = DateTime.Now.TimeOfDay;

if (tNow>tStart && tNow<tFinish) {
	project.SendInfoToLog("Текущее время - между 8 утра и 11 вечера");
}

//unix time
int unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
project.SendInfoToLog("Текущее unix-время: " + unixTimestamp);

//получение по NTP
//using System.Net;
//using System.Net.Sockets;

StreamReader rdr = new StreamReader(new TcpClient("132.163.4.102", 13).GetStream());
string strNtpTime = rdr.ReadToEnd();
project.SendInfoToLog("Время, полученное с NTP-сервера: " + strNtpTime);

//генерация даты рождения
string strRandomDate = DateTime.Now.AddDays(new Random().Next(3650, 25000)*-1).ToString("dd.MM.yyyy");
project.SendInfoToLog("Случайная дата рождения: " + strRandomDate);

//вычисление диапазона
DateTime dtPrevDate = Convert.ToDateTime("01.01.2017");
TimeSpan tsDiff = DateTime.Now - dtPrevDate;
int intHoursAge = Convert.ToInt32(Math.Floor(tsDiff.TotalHours));
project.SendInfoToLog("Прошло часов с начала года: " + intHoursAge);