2009-01-16 7 views
0

Disons que ce mec est inscrit sur mon site pour 5 $ pour 30 jours. Alors, comment puis-je faire du code automatiquement après 30 jours supprimer son compte?Comment soustraire des dates?

Merci pour les réponses et désolé pour le pauvre anglais respectueusement, Tom

+0

Quelle langue/plateforme? –

Répondre

2

Si vous le pouvez, convertissez la date d'enregistrement et l'heure actuelle en horodatages UNIX. Puis soustrayez leur temps d'enregistrement de l'heure actuelle et vérifiez si le résultat est supérieur au nombre de secondes dans 30 jours. (60 secondes * 60 minutes * 24 heures * 30 jours = 2592000 secondes.)

+1

Méfiez-vous des comportements étranges avec l'heure d'été. – derobert

10

Utilisez les fonctions de gestion des dates de votre langage de programmation préféré. N'essayez pas de l'implémenter vous-même. C'est plus difficile que tu ne le penses.

0

Il est fort probable que vous exécutiez un travail cron tous les jours et que vous vérifiiez si le dernier paiement d'un compte datait d'il y a 30 jours, puis supprimez l'utilisateur. Cependant, manipuler la date est difficile à expliquer à moins de savoir quelle langue vous utilisez. Puisque vous avez spécifié DateTime, je vais supposer que vous voulez dire l'objet .NET DateTime et que vous pouvez simplement faire DateTime.addMonths (-1); ou DateTime.addDays (-30) respectivement.

+0

hehe, je suis tombé sur l'ajout de jours négatifs aussi bien pour .NET. Très utile! –

+0

Eh bien il n'y a pas de méthode pour minusDays, seulement ajouter. – Malfist

0

Si vous avez juste besoin de compter 30 jours, vous pouvez les compter comme 30 * 24 * 60 * 60 = 2592000 secondes et simplement soustraire les horodatages unix .

Quelque chose de plus complexe que ceci est un PITA pour vous implémenter et vous devriez suivre les conseils récursifs.

3

Je suggérerais simplement de noter la date d'expiration du compte dans son enregistrement, plutôt que d'avoir une sorte de processus planifié pour supprimer les comptes expirés.

Pour un exemple .Net: lorsque vous recevez le paiement de 5 $, définissez la date d'expiration du compte sur DateTime.Now.AddDays (30) et refusez la connexion sur un compte où expirationDate < DateTime.Now.

En Java, vous devez verser la date dans un calendrier pour ajouter des jours, puis la réintégrer dans une date lorsque vous avez terminé. Toutefois, les fonctionnalités disponibles pour gérer les dates sont déterminées par votre environnement.