J'essaie de mettre au point un outil qui m'aidera à établir des horaires de travail. Quel est le moyen le plus simple de résoudre les problèmes suivants?
8h00 + 5 heures = 13h00
et
17h00 - 2 heures = 15h00
et
17h30 -: 45 = 4:45
etc.
Celles-ci peuvent toutes être effectuées avec DateTime.Add(TimeSpan)
car elles prennent en charge des périodes de temps positives et négatives.
DateTime original = new DateTime(year, month, day, 8, 0, 0);
DateTime updated = original.Add(new TimeSpan(5,0,0));
DateTime original = new DateTime(year, month, day, 17, 0, 0);
DateTime updated = original.Add(new TimeSpan(-2,0,0));
DateTime original = new DateTime(year, month, day, 17, 30, 0);
DateTime updated = original.Add(new TimeSpan(0,45,0));
Vous pouvez également utiliser la méthode DateTime.Subtract(TimeSpan)
de manière analogue.
Découvrez toutes les méthodes DateTime ici: http://msdn.Microsoft.com/en-us/library/system.datetime.aspx
Add
Renvoie un nouveau DateTime qui ajoute la valeur du TimeSpan spécifié à la valeur de cette instance.
AddDays
Renvoie un nouveau DateTime qui ajoute le nombre de jours spécifié à la valeur de cette instance.
AddHours
Renvoie un nouveau DateTime qui ajoute le nombre spécifié d'heures à la valeur de cette instance.
AddMilliseconds
Renvoie un nouveau DateTime qui ajoute le nombre spécifié de millisecondes à la valeur de cette instance.
AddMinutes
Renvoie un nouveau DateTime qui ajoute le nombre de minutes spécifié à la valeur de cette instance.
AddMonths
Renvoie un nouveau DateTime qui ajoute le nombre spécifié de mois à la valeur de cette instance.
AddSeconds
Renvoie un nouveau DateTime qui ajoute le nombre de secondes spécifié à la valeur de cette instance.
AddTicks
Renvoie un nouveau DateTime qui ajoute le nombre de ticks spécifié à la valeur de cette instance.
AddYears
Renvoie un nouveau DateTime qui ajoute le nombre d'années spécifié à la valeur de cette instance.
Cela fonctionne aussi:
System.DateTime dTime = DateTime.Now();
// tSpan is 0 days, 1 hours, 30 minutes and 0 second.
System.TimeSpan tSpan = new System.TimeSpan(0, 1, 3, 0);
System.DateTime result = dTime + tSpan;
Pour soustraire une année:
DateTime DateEnd = DateTime.Now;
DateTime DateStart = DateEnd - new TimeSpan(365, 0, 0, 0);
Utilisez l'objet TimeSpan pour capturer votre élément time initial et utilisez les méthodes telles que AddHours
ou AddMinutes
. Pour soustraire 3 heures, vous ferez AddHours(-3)
. Pour soustraire 45 minutes, vous ferez AddMinutes(-45)
Bonjour, si vous ne soustrayez que la valeur entière de DateTime, vous devez écrire du code comme celui-ci.
DateTime.Now.AddHours(-2)
Ici, je soustrais 2 heures à la date et à l'heure actuelles
essaye ça
namespace dateandtime
{
class DatesTime
{
public static DateTime Substract(DateTime now, int hours,int minutes,int seconds)
{
TimeSpan T1 = new TimeSpan(hours, minutes, seconds);
return now.Subtract(T1);
}
static void Main(string[] args)
{
Console.WriteLine(Substract(DateTime.Now, 36, 0, 0).ToString());
}
}
}