Avatar billede juks Novice
10. januar 2010 - 15:32 Der er 6 kommentarer

oprette/opdatere alders grupper

JEg har følge kriterere , hvordan laver laver jeg en funktion der angiver om en dato(fødselsdato) er 1,2,3,4 eller 5.




Stk. 2 Senior er spillere, der er fyldt 17 år inden 1. januar i det år, turneringen begynder.
Stk. 3 Junior U19 er spillere, der er fyldt 15 år, men ikke er fyldt 19 år inden 1. januar i det år,
turneringen begynder.
Stk. 4 Junior U16 er spillere, der er fyldt 13 år, men ikke er fyldt 16 år inden 1.januar i det år,
turneringen begynder.
Stk. 5 Junior U13 er spillere, der er fyldt 10 år, men ikke er fyldt 13 år inden 1.januar i det år,
turneringen begynder.
Stk. 6 Junior U10 er spillere, der er fyldt 8 år, men ikke er fyldt 10 år inden 1.januar i det år,
turneringen begynder.
Avatar billede arne_v Ekspert
10. januar 2010 - 17:04 #1
noget a la:

DateTime birthday = ...;
int y = ...;
DateTime cut = new DateTime(y, 1, 1);
if(birtday.AddYears(17) >= cut) {
  ...
} else if(birtday.AddYears(15) >= cut) {
  ...
} else if(birtday.AddYears(13) >= cut) {
  ...
} else if(birtday.AddYears(10) >= cut) {
  ...
} else if(birtday.AddYears(8) >= cut) {
  ...
}

NB: med de skitserede regler er det overlap - min kode placerer dem i den ældste kategori som de passer i - du kan nemt tilrette til yngste.
Avatar billede juks Novice
11. januar 2010 - 14:32 #2
ahh ja må jeg lige rode lidt med ..
Avatar billede juks Novice
13. januar 2010 - 10:32 #3
tror jeg har fået det rigtigt:-) men hvordan får jeg den til at opdatere det i min database ...
Avatar billede arne_v Ekspert
14. januar 2010 - 01:37 #4
Hvis din applikation opdaterer enkelte rækker er det jo helt normale opdateringer.

Hvis du vil have en SQL som opdaterer alle rækker skal vi lige vide hvilken database du bruger.
Avatar billede juks Novice
15. januar 2010 - 13:20 #5
Problemet er at det angivet i databasen om man er Senior=5, u19 =4 osv , det er brugt som reference punkt gennem hele applikationen , det ville være smartere at den beregnede hvergang men sådan er livet ikke så en update af min DB hver den 01/01/20xx ville være det hurtigeste.


select Queryen , sersådan her ud

SELECT swans_player.fk_age_group_id, swans_user.first_name, swans_user.birthday
FROM swans_user INNER JOIN (swans_player INNER JOIN swans_user_authorization ON swans_player.id = swans_user_authorization.fk_player_id) ON swans_user.id = swans_user_authorization.fk_user_id;


men hvordan får jeg den til at opdatere
Avatar billede juks Novice
15. januar 2010 - 15:12 #6
på den anden side , har jeg jo et dataset der hedder players, det må jeg jo kunne "køre" igennem GetupdateAgeID


  public int GetUpdateAgeID(string birthDato)
  {
    //funktion til opdatering af aldergrupper
    // 5 = Senior
    // 4 = U19
    // 3 = U16
    // 2= U13
    //  1=  u10


      DateTime birthday = DateTime.Parse(birthDato);
int y = 0;
DateTime cut = new DateTime(y, 1, 1);

if (birthday.AddYears(17) > cut)
{
  y = 5 ;

}
else if (birthday.AddYears(15) > cut)
{
  y = 4 ;

}
else if (birthday.AddYears(13) > cut)
{
  y = 3 ;

}
else if (birthday.AddYears(10) > cut)
{
  y = 2 ;
}
else if (birthday.AddYears(8) > cut)
{
y = 1 ;
}
return y ;
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester