I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
det ved jeg, men det er også blot en løsning på kort sigt. jeg har en funktion til cprvalidering, men mangler at koble den sammen med den: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Valider CPR nr</title> <meta name="Generator" content="Stone's WebWriter 4"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript" type="text/javascript"> function cprCheck(flt){ var cpr = flt.value,match = false,c = flt.form.elements["cpr-status"]; if(cpr.match(/[0-9]{6}\-?[0-9]{4}/)){ c.disabled = false; cpr = cpr.replace(/\-/g,""); var chk = 0; for(i=9;i>-1;i--){ chk += (+cpr.charAt(i))*((i>2)?(10-i):(4-i)); } if(chk%11==0)match = true;
-- da år ikke har den samme længde vil det kun give en overslagsmæssig korrekt åremål (omend der på 60 år er meget lille fejl !-) men man vil kunne udelukke en, der fylder 60 i morgen, og det bliver næppe nogen begejstret over !o]
ok.. det er mig der ikke kan udtrykke mig klart: jeg er blevet sat til at lave en formular, hvor følgende skal være valideret:
Ved indtastning af CPR-nr må kunden ikke være fyldt 60 år ved oprettelse, ellers skal der komme en advarsel med at "kunden har opnået efterlønsalderen, hvor der gælder særlige regler for oprettelse af pension til disse kunder". i feltet "første indbetalingsdato" må man ikke kunne indtaste tidligere end dagsdato. I feltet udbetalingsdato skal der valideres på følgende
For kapitalpensioner: Udbetalingsdato skal være senere end opnået efterløn (efterløn kan slåes op i det vedhæftede excel ark) Udbetalingsdato må ikke ligge senere end efterlønsalder + 10 år Dato er altid den 1. i en måned
For ratepensioner: Udbetalingsdato skal være senere end opnået efterløn Udbetalingsdato må ikke ligge senere end efterlønsalder + 16 år Udbetalingsdato skal ligge min. 5 år efter oprettelsesdato Dato er altid den 1. i en måned
Er der en der kan hjælpe ? jeg kan desværre ikke tilbyde betaling, men selve løsningen vil blive lagt, så andre også kan få gavn af det.
er det ikke bare at splitte cpr-nummeret op i 3 dele; dag, måned og år og så lægge 1900 eller 2000 til året alt efter om det er over eller under det år vi har i år?
så burde det da være relativt nemt at udlede om personen er over eller under 60 præcis i dag? eller er jeg helt galt på den?
ok... Da jeg ikke er så god til at programmere, så kiggede jeg lidt rundt på nettet. jeg fandt en løsning, der kan tage udagangspunkt i ens fødselsdato - skal man benytte cpr, så kan man blot skære resten fra i dette eksempel.
import java.util.*; import java.io.*;
public class AgeCalculation{ public static void main(String[] args) throws IOException{ int day = 1, month = 0, year = 1, ageYears, ageMonths, ageDays; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); Calendar cd = Calendar.getInstance(); try{ System.out.print("Enter year of your date of birth : "); year = Integer.parseInt(in.readLine()); if(year > cd.get(Calendar.YEAR)){ System.out.print("Invalid date of birth."); System.exit(0); } System.out.print("Enter month of your date of birth : "); month = Integer.parseInt(in.readLine()); if(month < 1 || month > 12){ System.out.print("Please enter monthe between 1 to 12."); System.exit(0); } else{ month--; if(year == cd.get(Calendar.YEAR)){ if(month > cd.get(Calendar.MONTH)){ System.out.print("Invalid month!"); System.exit(0); } } } System.out.print("Enter day of your date of birth : "); day = Integer.parseInt(in.readLine()); if(month == 0 || month == 2 || month == 4 || month == 6 || month == 7 || month == 9 || month == 11){ if(day > 31 || day < 1){ System.out.print("Please enter day between 1 to 31."); System.exit(0); } } else if(month == 3 || month == 5 || month == 8 || month == 10){ if(day > 30 || day < 1){ System.out.print("Please enter day between 1 to 30."); System.exit(0); } } else{ if(new GregorianCalendar().isLeapYear(year)){ if(day < 1 || day > 29){ System.out.print("Please enter day between 1 to 29."); System.exit(0); } } else if(day < 1 || day > 28){ System.out.print("Please enter day between 1 to 28."); System.exit(0); } } if(year == cd.get(Calendar.YEAR)){ if(month == cd.get(Calendar.MONTH)){ if(day > cd.get(Calendar.DAY_OF_MONTH)){ System.out.print("Invalid date!"); System.exit(0); } } } } catch(NumberFormatException ne){ System.out.print(ne.getMessage() + " is not a legal entry!"); System.out.print("Please enter number."); System.exit(0); } Calendar bd = new GregorianCalendar(year, month, day); ageYears = cd.get(Calendar.YEAR) - bd.get(Calendar.YEAR); if(cd.before(new GregorianCalendar(cd.get(Calendar.YEAR), month, day))){ ageYears--; ageMonths = (12 - (bd.get(Calendar.MONTH) + 1)) + (bd.get(Calendar.MONTH)); if(day > cd.get(Calendar.DAY_OF_MONTH)){ ageDays = day - cd.get(Calendar.DAY_OF_MONTH); } else if(day < cd.get(Calendar.DAY_OF_MONTH)){ ageDays = cd.get(Calendar.DAY_OF_MONTH) - day; } else{ ageDays = 0; } } else if(cd.after(new GregorianCalendar(cd.get(Calendar.YEAR), month, day))){ ageMonths = (cd.get(Calendar.MONTH) - (bd.get(Calendar.MONTH))); if(day > cd.get(Calendar.DAY_OF_MONTH)) ageDays = day - cd.get(Calendar.DAY_OF_MONTH) - day; else if(day < cd.get(Calendar.DAY_OF_MONTH)){ ageDays = cd.get(Calendar.DAY_OF_MONTH) - day; } else ageDays = 0; } else{ ageYears = cd.get(Calendar.YEAR) - bd.get(Calendar.YEAR); ageMonths = 0; ageDays = 0; } System.out.print("Age of the person : " + ageYears + " year, " + ageMonths + " months and " + ageDays + " days."); } }
Java og JavaScript har i udgangspunktet kun fire ting til fælles: J, A, V og A ;o)
Synes godt om
Ny brugerNybegynder
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.