vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
NEU! sevCoolbar 3.0 - Professionelle Toolbars im modernen Design!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Annäherung an Wunschzahl 
Autor: Leberkas
Datum: 31.10.17 10:10

Hallo,

ich habe folgendes Problem.
Ich möchte verschiedene Zahlen überprüfen an welcher Zahl sie am nächsten dran sind.
Zu überprüfen sind alle 1000 er bis 40000 und 1111,2222,3333 bis 9999, und 11111 bis 33333
und wie groß der unterschied ist.

Wäre mal über einen Denkanstoß ganz glücklich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Annäherung an Wunschzahl 
Autor: effeff
Datum: 31.10.17 10:34

Wie wäre es, die Zahlen in ein sortiertes Array zu schreiben, festzustellen, an welcher Position sie sich befinden und dann die Positionen davor und danach rechnerisch auszuwerten?

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Annäherung an Wunschzahl 
Autor: Franki
Datum: 02.11.17 04:09

Hallo,
definiere doch mal was du mit "am nächsten dran" meinst.

Du willst den Abstand zu 1000, 2000, 3000 usw. prüfen, was ist wenn die zu prüfende Zahl z.B. 1500 ist? Dann ist das die Mitte zwischen 1000 und 2000 also gleicher Abstand zu beiden Grenzen....

Und dann noch die Zwischenprüfungen, was ist bei z.B. 2111, das hat den gleichen Abstand zu 2000 und 2222.

Ansonsten brauchst du für die Tausender ja nur deine gesuchte Zahl durch 1000 zu dividieren, der Teil vor dem Komma ist dann der gesuchte Tausender.

Beispiel: 12345 / 1000 = 12,345 also am nächsten an 12000.

Beschreibe doch mal wofür du das brauchst, vielleicht gibt es ja einen ganz anderen Ansatz deine Aufgabe zu lösen.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Annäherung an Wunschzahl 
Autor: Manfred X
Datum: 02.11.17 10:22

https://de.wikipedia.org/wiki/Buridans_Esel
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Annäherung an Wunschzahl 
Autor: Leberkas
Datum: 02.11.17 20:32

Hallo,

@ Franki, dank für den Hinweis. Aber soweit ist das ganze vor meinem inneren Auge noch nicht gereift
Es soll natürlich nur die größere Zahl berücksichtigt werden.

Beispiel 1500 soll die 2000 herangezogen werden.

Beispiel ist ja fast zu peinlich das man es erzählt ...
Samstagabend, Trinkrunde unter Kumpels .... Bier X+1
Wir haben Gründe gesucht warum man feiern kann.
Einmal in Jahr Geburtstag ist einfach zu wenig ....
Warum nicht den 15000 Lebenstag feier.
Also wenn jemand einen anderen Ansatz hat.

Schönen Abend noch ....
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Annäherung an Wunschzahl 
Autor: Franki
Datum: 03.11.17 04:06

Hallo,

warum peinlich, auch solche Sachen sind Alltag in der Programmierung, du glaubst gar nicht was ich in meiner Anfangszeit wo Programmieren noch Hobby war für Sachen gemacht habe und auch heute im Kreis der Kumpels manchmal noch mache.

Ihr sucht Anlässe zum Feiern? Ist doch gar kein Problem, nehmt euch einfach ein geschichtliches oder aktuelles Datum was in deiner Berechnung vorgegeben wird und ermittelt dann wer am nächsten dran ist. Stichwort DateDiff mit entsprechedem Intervall.

Dann braucht ihr keine Schleifen oder sonst was in der Programmierung.
Beispiel: Ihr feiert den 20. Jahrestag der Erfindung des Smartphones, habt das Datum und wer am nächsten dran ist gibt die nächste Runde aus.

Und den Buridans Esel braucht ihr da wirklich nicht, denn sonst verdurstet ihr in der Kneipe hoffnungslos...

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Annäherung an Wunschzahl 
Autor: Manfred X
Datum: 03.11.17 06:15

Hallo!

Wer erst einen Grund benötigt, um zu feiern, hat wesentliche
Grundlagen noch nicht richtig verstanden.

Voraussetzung für die Teilnahme an diesem Forum, sind aber gute
Kenntnisse in Methoden der Freizeitgestaltung.
Lies deshalb bitte zunächst ein einführendes Lehrbuch zum Thema
"Wie entspanne ich richtig!". Auch das Üben ist wichtig.

Hier können nur Detailfragen kurz beantwortet werden, z.B.
https://www.gutefrage.net/frage/was-kostet-in-bier-05-liter-in-ner-kneipebar-in-berlin-ungefaehr--so-im-durchschnitt
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Annäherung an Wunschzahl 
Autor: effeff
Datum: 03.11.17 10:34

//Wer erst einen Grund benötigt, um zu feiern, hat wesentliche
Grundlagen noch nicht richtig verstanden. //

Genau! Man kann auch trinken, ohne fröhlich zu sein...

Grundsätzlich muss man dabei auch die Textzeile vom Kraftklub beachten: "Wenn trinken keine Lösung ist, habe ich auch kein Problem!"

//Voraussetzung für die Teilnahme an diesem Forum, sind aber gute
Kenntnisse in Methoden der Freizeitgestaltung.
Lies deshalb bitte zunächst ein einführendes Lehrbuch zum Thema
"Wie entspanne ich richtig!". Auch das Üben ist wichtig. //

Hier seien entsprechende Magazine angediehen, wie z. B. http://www.bier-magazin.de/ oder https://www.scoma.de/scoma290543-whisky-magazine-nr-143-may-june-2017-html.html

Da hast Du uneingeschränkt recht! Es geht nix über gute Fachliteratur!

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

FindNextPartyDate 
Autor: Manfred X
Datum: 03.11.17 22:50

   Public Function FindNextPartyDate() As Date
 
        'Static: lokal deklarierte Liste bleibt zwischen 
        '        den Aufrufen erhalten
        Static PartyDates As List(Of DateTime)
 
        If PartyDates Is Nothing Then
            'Beim ersten Aufruf:
            'Liste erstellen und mit üblichen Party-Terminen füllen
            '(Berliner Version: Regionale Abweichungen denkbar)
            PartyDates = New List(Of DateTime)
            Dim start As Long = New Date(Today.Year, 1, 1).Ticks
            Dim ende As Long = New Date(Today.Year + 1, 12, 31).Ticks
 
            For i As Long = start To ende Step TimeSpan.TicksPerDay
                Dim dt As DateTime = New DateTime(i)
 
                With dt
                    If .DayOfWeek = DayOfWeek.Monday Or _
                       .DayOfWeek = DayOfWeek.Sunday Or _
                       .DayOfWeek = DayOfWeek.Saturday Or _
                       .DayOfWeek = DayOfWeek.Friday Then
                        PartyDates.Add(dt)
                    End If
                End With
            Next i
        End If
 
        Dim mindiff As Long = Long.MaxValue
        Dim NextPartyDate As DateTime = Nothing
        Dim diff As Long
        For i As Integer = 0 To PartyDates.Count - 1
            diff = PartyDates(i).Date.Ticks - Today.Date.Ticks
            'Die nächste Party findet in der Zukunft statt
            If diff > 0 AndAlso diff < mindiff Then
                mindiff = diff
                NextPartyDate = PartyDates(i)
            End If
        Next i
        Return NextPartyDate
    End Function
Ermittlung der Zahl der bereits gelebten Tage:
 Private Function DaysLived(ByVal birthday As Date) As Integer
 
    Return (Today.Date - birthday.Date).Days
 
 End Function
Datum eines "runden Tages-Geburtstages"
(gegeben durch den Days-Parameter):
 Private Function GetPartyDay(ByVal birthday As Date, _
          ByVal Days As Integer) As Date
 
    Return birthday.Date.AddDays(Days)
 End Function


Beitrag wurde zuletzt am 03.11.17 um 23:15:35 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel