Millähän ilveellä saa vanhasta DOS käyttiksellä varustetusta läppäristä viikonpäivän ohjelmaan sisään? Kun heittää dos-tilassa DATE-komennon niin se tuo näytölle ensiksi tuon viikonpäivän (maanantai, tistai, keskiviikko jne) englanninkielisenä lyhenteenä mutta en ole keksinyt vielä miten se on kaivettavissa koneen sisuksista. Ohjelmoin BASICilla erästä sovellusta ja tarvitsen siihen viikonpäivää. Korostan vielä että tuo BASIC-ohjelma ei osaa kaivaa viikonpäivää DATE$-komennolla tuon läppärin sisuksista.
Viikonpäivä koneesta
30
302
Vastaukset
- jgkjgkjg
Mikä dos-versio? Mikä Basic?
- BASIC-käyttäjä
DOS 7.1 ja POWERBASIC 3.5
- Onvaihtoehtoja
FreeDos
tai Dos2000
asentuvat nykykoneellekkin.
Päiväys juttu autoexec.bat:iin kirjoitetaan.
Tai Qemu ja DosBox, tai dosbox nykyjärjestelmän päälle.
tai sitten se ikivanha dos, jolloin biosta joudut nykykoneissa mylkkaan hurjasti.
Kone kannataa valita sen mukaan, vanhan dossin rajoiteet on kamalat.- kryuuk
Miten sinulla on noin heikko ulosanti?
- kielen_tuhoaja
kryuuk kirjoitti:
Miten sinulla on noin heikko ulosanti?
Ehkäpä vaan kirjuuttaa ns. älypuhelimesta, tuosta kielen rappeuttajasta.
- räpärällää
Jos ei muuta konstia löydy, niin eikö date-komennon tuloksen saa ohjattua tiedostoksi suurempi kuin merkillä > tiedosto.txt ja sitten ohjelmassa lukea se tiedosto, jotta saa viikonpäivän nimen. Toinen vaihtoehto esim. Zellerin funktio viikonpäivän selvittämiseksi, tai jokin oma mukaelma siitä 1900-2100 vuosille esimerkiksi...
https://fi.m.wikipedia.org/wiki/Zellerin_sääntö
https://fi.m.wikipedia.org/wiki/Modulaarinen_aritmetiikka - BASIC-käyttäjä
Kiitoksia "räpärällää". Tuo Zellerin matematiikka on yksinkertainen ja ilmeisen varma. Eikä tarvitse kuin yhden rivin saadakseni aikaiseksi viikonpäivän. Tuo modulaarinen aritmetiikka oli vähän liikaa mulle ; en edes jaksanut lukea sitä kaikkea. Itse harkitsin alkuun tuota samaa, jota ehdotit eli SHELLillä DOSsiin ja DATE-käskyllä vasterotla muistiin ja niin edelleen mutta kun kerran pystyn BASICin sisällä' laskemaan viikonpäivän niin se on mielestäni paljon parempi ratkaisu. Kiitoksia vielä kerran.
- räpärällää
Kiitos kiitos. Taitaa olla Zellerin funktiosta kertoessaan Wikipedia nolosti väärässä, kun väittää tuota funktiota algoritmiksi. Algoritmi lienee sana, jolla tarkoitetaan (toistettavaa) prosessia mieluummin kuin yksinkertaista funktiota - josta arvo, vastaus tulee matemaattisen laskelman tarkkuudella samantien yhdellä kertaa.
https://fi.wikipedia.org/wiki/Algoritmi
Vaihtoehtoinen tapa viikonpäivien laskentaan olisi käyttää vuodenpäivänumeroita. Esim. tehdään funktio, joka selvittää onko vuosi karkausvuosi. Sitten toinen funktio, joka tuon äskeisen avulla laskee päiväykselle vuodenpäivänumeron. Funktio, joka laskee toisinpäin, jne. Mutta Zellerin kaava taisi olla riittävää yllä mainittuun tarkoitukseen. - OnSeAlgoritmi
räpärällää kirjoitti:
Kiitos kiitos. Taitaa olla Zellerin funktiosta kertoessaan Wikipedia nolosti väärässä, kun väittää tuota funktiota algoritmiksi. Algoritmi lienee sana, jolla tarkoitetaan (toistettavaa) prosessia mieluummin kuin yksinkertaista funktiota - josta arvo, vastaus tulee matemaattisen laskelman tarkkuudella samantien yhdellä kertaa.
https://fi.wikipedia.org/wiki/Algoritmi
Vaihtoehtoinen tapa viikonpäivien laskentaan olisi käyttää vuodenpäivänumeroita. Esim. tehdään funktio, joka selvittää onko vuosi karkausvuosi. Sitten toinen funktio, joka tuon äskeisen avulla laskee päiväykselle vuodenpäivänumeron. Funktio, joka laskee toisinpäin, jne. Mutta Zellerin kaava taisi olla riittävää yllä mainittuun tarkoitukseen.Wikipediassa sanotaan algoritmista:
"Algoritmi on yksityiskohtainen kuvaus tai ohje siitä, miten tehtävä tai prosessi suoritetaan; jota seuraamalla voidaan ratkaista tietty ongelma"
Onhan tuossa Zellerin tapauksessa ilman muuta käsillä tietty ongelma eli se että kun on päiväys, niin mikä viikonpäivä silloin on.
Ja ilman muutahan Zellerin menetelmä on yksityiskohtainen kuvaus siitä miten kyseinen ongelma ratkeaa. Algoritmi se on silloin. - räpärällää
OnSeAlgoritmi kirjoitti:
Wikipediassa sanotaan algoritmista:
"Algoritmi on yksityiskohtainen kuvaus tai ohje siitä, miten tehtävä tai prosessi suoritetaan; jota seuraamalla voidaan ratkaista tietty ongelma"
Onhan tuossa Zellerin tapauksessa ilman muuta käsillä tietty ongelma eli se että kun on päiväys, niin mikä viikonpäivä silloin on.
Ja ilman muutahan Zellerin menetelmä on yksityiskohtainen kuvaus siitä miten kyseinen ongelma ratkeaa. Algoritmi se on silloin.Trigonometriassa saattaa olla "ongelmana" esim. että selvitetään tangentin arvo asteluvulle 67. Vastauksen selvittämiseen ei minun mielestäni tarvita algoritmi, vaan funktio, mutta ehkä on sitten kyse näkökulmasta, mitä miksikin nimitetään milloinkin.
Tuossa Wikipedia-määritelmässä puhuttiin nimenomaan prosessista, jota itsekin mainitsin edellä. Prosessiin saattaa sisältyä toimintoja, että hae tämä asia tuolta, tai tuolta, kunnes löytyy sopiva yhdistelmä, tai jotain toimintoja tehdään, jotka eivät ole matemaattiseksi lausekkeeksi muotoiltavissa/muotoiltu. Mutta funktiosta arvo tulee helposti, matemaattisen lausekkeen tavalla, kuten esim. 2 3 =5. Siinä mielessä Zellerin sääntö tai kaava voidaan kyllä ohjelmoida funktioksi, tai nimittää sitä funktioksi.
Eihän esim. trigonometrian funktioista yleensä käytetä nimitystä, että algoritmi? Toki voidaan jotain funktioita yrittää vääntää algoritmin muotoon esim. Taylorin polynomilla.
- Trollessonni
Valmiita dos ohjelmia on päiväyksen sanaliseen ilmoitukseen, jos 2k ongelmaa ole niissä.
Hoh hoh. ettei olis vastannut itselleen???? - Laazz00
Jos haluat nopeutta käytä free pascalia. Se on nykyaikaisin kääntäjä (ohjelmointikieli) dosille.
Päivämäärän saat selville funktiolla DayOfTheWeek . Se kertoo sen ISO 8601 mukaisesti.
Jos käyttämäsi kieli pystyy lukemaan komentoriviltä niin voit hyödyntää free pascalia siinäkin. Lisäksi sillä on laajin suomenkielinen ohjesivusto netissä. - BASIC-koodari
Okei nyt kun Homma tuli hoidettua BASICilla ja DOS 7.1 kanssa niin jos haluan tuon saman homman tehdä niin että se pyörii Vanhassa Xp-läppärissä niin mitähän ohjelmointikieltä kannattaisi käyttää?
BASIC on pois suljettu ellei sitä sitten aja EXE-muotoon. (täytyykin kokeilla!) Vaatimuksena on että em. ohjelma ei vaadi liikaa asennettavaa koneeseen tai on implementoitavissa koneeseen tosi helposti.
Ehdotettuja ohjelmointikieliä: FreeDos, Dos2000, free pascal
Xp:n jälkeen seuraavaksi täytyy varmastikin mennä LINUX-palstalle kyselemään PYTHON-ohjeita- jjjjjjjjj
Ohjelmointikieliä jutussasi on Basic, free pascal ja python, muut ovat jonkinlaisia käyttöjärjestelmiä.
- räpärällää
jjjjjjjjj kirjoitti:
Ohjelmointikieliä jutussasi on Basic, free pascal ja python, muut ovat jonkinlaisia käyttöjärjestelmiä.
Esim. DOSsissa on ollut mahdollista harrastaa pienimuotoista, rajallista ohjelmointia BAT-tiedostoihin. Käytellä siinä samoja komentoja, tiedostoihin ohjaamisia, ja samoja parametrejä kuin komentoriviltäkin. Periaatteessa olisi mahdollista tehdä vaikka kortistointiohjelma DOSsilla niin, että data on tekstiriveinä tekstitiedostossa. Kukin tietoalkio tietyssä positiossa rivillä, tietyssä sarakkeessa. Sitten mahdollista lajitella SORT-komennolla käyttäen sarakenumeroa parametrina. Tehdä hakuja FIND-lausekkeilla, jne. Datan selailuun ja muunteluun voisi sitten käyttää vaikka tekstinkäsittelyohjelmia, jotka TXT-tiedostomuotoa ymmärtävät. Tai periaatteessa voidaan kirjoittaa suoraan näyttöruudulta rivejä tiedostoihin COPY CON... -tyyppisellä lausekkeella...
- gftukfyukgfuk
Niin?
- räpärällää
"jos haluan tuon saman homman tehdä niin että se pyörii Vanhassa Xp-läppärissä niin mitähän ohjelmointikieltä kannattaisi käyttää?"
Voihan DOS-koneissa käyttää vaikka assembleria pienten rutiinien vääntämiseen.
Pascal muistuttaa C:tä. Erilaiset välimerkit. Yhdessä kielessä käytetään yhdenlaisia sulkumerkkejä, toisessa toisenlaisia. Joku saattaisi mieluummin käyttää Pascalia kuin C-kieltä.
Kääntäjä, COM- tai EXE-muotoon kääntäminen, saattaa olla parempi kuin tulkkikielen kautta käytellä ohjelmia. - Anonyymi
Nonni .....Nyt se sama ohjelma pyörii Raspberry Pi 1:llä Pythonilla ja homma on varmistettu RTC:llä verkkohäiriöiden varalta.
Meni aika kauan ennenkuin tajusin että pythonin grafiikka ja ruudunkäsittely ovat erillisiä ohjelmia tai moduleta ja joista yksi on Tkinter. Se tuntuu riittävältä ja on ihan tarpeeksi vaikea opeteltava.
Myös Raspianin kehittyneisyys yllätti positiivisesti. Sehän on täysverinen Linux tosin pirullisen hidas kun on tottunut kunnon koneen vauhtiin.
BASIC-koodari - Anonyymi
Tuo Zellerin algoritmi muuten toimii ihan hyvin mutta sen soveltaminen noiden tammi- ja helmikuun osalta tekee sen vain hieman työlääksi.
h=(q (((m 1)*26)/10) K (K/4) (J/4)-2*J) mod7
missä :
• q = kuukauden päivä, esimerkiksi 6.12.1917
• m = kuukauden järjestysluku, esimerkiksi 6.12.1917. Huom: tammi- ja helmikuu ovat järjestysluvultaan 13 ja 14 edellisenä vuonna eli vuosiluvusta on vähennettävä yksi.
• K = vuosiluvun kaksi viimeistä numeroa, ( Vuosi MOD 100), esimerkiksi 6.12.1917
• J = vuosiluvun kaksi ensimmäistä numeroa, ( Vuosi/100), esimerkiksi 6.12.1917
• h = viikonpäivä (0 = lauantai, 1 = sunnuntai, 2 = maanantai, ...)
BASIC-koodari
Eihän tuo ole kuin ihan simppeli koodinpätkä. Laske päivän numero ja ota modulo 7 ja sitten säädä tulos oikeaksi.
n=int(365.25*(vuosi-1))
for i=1 to k-1: n=n kuunpituus(v):next i
n=n=n p-1
if v mod 4=0 and k>2 then n=n 1
vp=(n xx) mod 7 1
Sitten testaamalla katsot arvon xx:lle.
Aikanaan tuli taskubasicilla tehtyä tuo yhdellä kaavalla. Tuo -1 kolmannella rivillä on turha, kun xx hoitaa homman.- Cobol-ja-basic
Itse olen nähnyt jonkun muun kaavan. Silloin elettiin 80-luvun alkuvuosia ja olin ekassa ATK-alan työpaikassani. Nyt on jo viimeinenkin taaksejäänyttä elämää, herrojen tahdosta. En ole ihan vielä eläkkeellä, ja joudun vielä muodon vuoksi hakemaan töitä. Ensimmäiseenkään haastatteluun ei enää pääse yli 60-vuotiaana, mutta kun Sipilän idioottia pitää TE-keskusten totella.
Ei tuo nyt näytä ollenkaan toimivalta, mikä on xx? En nyt puhu muuttujien alustuksista enkä tyyppimäärittelyistä. Cobol-ja-basic kirjoitti:
Itse olen nähnyt jonkun muun kaavan. Silloin elettiin 80-luvun alkuvuosia ja olin ekassa ATK-alan työpaikassani. Nyt on jo viimeinenkin taaksejäänyttä elämää, herrojen tahdosta. En ole ihan vielä eläkkeellä, ja joudun vielä muodon vuoksi hakemaan töitä. Ensimmäiseenkään haastatteluun ei enää pääse yli 60-vuotiaana, mutta kun Sipilän idioottia pitää TE-keskusten totella.
Ei tuo nyt näytä ollenkaan toimivalta, mikä on xx? En nyt puhu muuttujien alustuksista enkä tyyppimäärittelyistä.xx on luku, joka selviää testaamalla.
- Basic-vai-Basica
okaro kirjoitti:
xx on luku, joka selviää testaamalla.
Miten tuota xx lukua pitää testata ?
Tarkistin tuon koodisi, ja tulos oli:
Rivi 1.) Asettaa n -muuttujan arvoksi -366
Rivi 2.) Ei tee yhtään mitään.
Rivi 3.) Asettaan n -muuuttujan arvoksi 0
Rivi 4.) Asettaan n -muuuttujan arvoksi 0 (Sama tulos kuin rivillä 3)
Rivi 5.) Asettaa vp -muuttujan arvoksi 1
Mitä tuon koodin pitäisi tehdä ? Basic-vai-Basica kirjoitti:
Miten tuota xx lukua pitää testata ?
Tarkistin tuon koodisi, ja tulos oli:
Rivi 1.) Asettaa n -muuttujan arvoksi -366
Rivi 2.) Ei tee yhtään mitään.
Rivi 3.) Asettaan n -muuuttujan arvoksi 0
Rivi 4.) Asettaan n -muuuttujan arvoksi 0 (Sama tulos kuin rivillä 3)
Rivi 5.) Asettaa vp -muuttujan arvoksi 1
Mitä tuon koodin pitäisi tehdä ?Emme elä vuotta 0. Ensimmäinen rivi antaa arvon 737074. Toisen jälkeen arvo on 737164. Kolmannella on selvästi typo, mutta se lisää arvon 1 eli 737165. Neljäs ei muuta.
xx:ää testataan vaikka luvuilla 0..6 kunnes tulos on oikein. Modulo antaa arvon 2, joten oikeav arvo vaikuttaa olevan 6.- Basic-vai-Basica
okaro kirjoitti:
Emme elä vuotta 0. Ensimmäinen rivi antaa arvon 737074. Toisen jälkeen arvo on 737164. Kolmannella on selvästi typo, mutta se lisää arvon 1 eli 737165. Neljäs ei muuta.
xx:ää testataan vaikka luvuilla 0..6 kunnes tulos on oikein. Modulo antaa arvon 2, joten oikeav arvo vaikuttaa olevan 6.Eli mitä se koodisi pitäisi tehdä, onko se joku periaatteessa ehkä näin juttu ? etkä niin ollen ole tarkoittanutkaan sen palauttavan jotain arvoa.
- räpärällää
Tuossa niitä konsteja oli jo ylempänä:
https://keskustelu.suomi24.fi/t/15596128/viikonpaiva-koneesta#comment-96984526
Jos halutaan ohjelmoimalla ohjelmoida, sitten karkausvuoden laskemiseksi on muistaakseni sääntönä
- yleensä neljällä jaolliset vuodet ovat karkausvuosia, paitsi
- sadalla jaolliset eivät ole, paitsi
- neljälläsadalla jaolliset ovat, mutta
- vielä on poikkeuksena tietty vuosiluku... 4840.
https://fi.wikipedia.org/wiki/Gregoriaaninen_kalenteri
https://issuu.com/janttisuku/docs/laurentius_58
Voitaisiin valmistaa funktio karkausvuoden selvittämiseksi.
Toisella funktiolla voitaisiin muuntaa päiväys vuodenpäivänumeroksi. Esim. tänä vuonna huhtikuun 1. päivä on vuoden 91. päivä. Siitä pystynee laskemaan viikon numeron ja viikonpäivän, kun tiedetään, että vuosi alkoi maanantailla, ja 1. viikko on se viikko, jolle osuu vuoden ensimmäinen torstai.
Toki päiväyksen tarkistamiseen voisi olla funktio myös. Tarkistamaan, ettei käyttäjä syötä koneelle päiväksi esim. 37. päivä 13. mätäkuuta.
Mitä yksinkertaisemmaksi rusinaksi saa kutistettua funktion, sen parempi. Mielestäni tuo Zeller on sitä jo tehnyt oivallisesti.- räpärällää
Täsmennystä tai korjausta:
Vuosi 2018 alkoi maanantaipäivällä
Vuosi 2019 tiistailla
Vuosi 2020 alkaisi keskiviikolla, karkausvuosi, joten
Vuosi 2021 alkaisi perjantailla...
Menikö laskelma oikein tällä kertaa?
Nyt jos muistetaan, että maanantaina oli vuodenpäivä 91 (eli 1.huhtikuuta), niin siitä on helppo laskea, 91 on jaollinen seitsemällä. Voidaan päätellä sitten, että vuosi alkoi tiistailla.
Tähtitieteen almanakoissa on käytetty juliaanista päivänumeroa.
https://www.ursa.fi/kirjat/lisamateriaalia/tahdet-vuosikirja/lisamateriaali-2016/juliaaninen-paivamaara.html
Tuossa olisi ohjelmoijille taas yksi vaihtoehtoinen tapa käsitellä päiväyksiä. Sivulta löytyy valmis kaava.
- Anonyymi
Joskus oli paivays.sys
Joka toi kellonajan ja suomenkielisen päivän oikeeseen alalaitaan.
vastavia eng yms. oli myös.
Oli myös kaynistin.sys joka teki alalaitaan käynistin palkin ja siinäkin oli päivämäärä ja kello.
sai sittenn valita jos omisti hiiren, käynistää mm. doom suoraan kuvakkeesta palkissa.
Dosillahan tehtiin paljon juttuja, joihin koodatiin itse ohjelma joskus 1980 luvulla - Anonyymi
Eri ohjelmointikielistä saattaa löytyä erilaisia valmiita funktioita. - Mistä tekstinkäsittelyohjelma tai taulukkolaskenta nuuskii päiväyksen tiedot? Onko käyttöjärjestelmässä jokin tietty muistipaikka varattu, esittämään tuota tietoa?
- Anonyymi
Kyse on kuluneista sekunneista 1 January 1970 00:00:00 lähtien. Esim nyt kello on 1558019992.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Aivosyöpää sairastava Olga Temonen TV:ssä - Viimeinen Perjantai-keskusteluohjelma ulos
Näyttelijä-yrittäjä Olga Temonen sairastaa neljännen asteen glioomaa eli aivosyöpää, jota ei ole mahdollista leikata. Hä912900Pelotelkaa niin paljon kuin sielu sietää.
Mutta ei mene perille asti. Miksi Venäjä hyökkäisi Suomeen? No, tottahan se tietenkin on jos Suomi joka ei ole edes soda2991686Mikä saa ihmisen tekemään tällaista?
Onko se huomatuksi tulemisen tarve tosiaan niin iso tarve, että nuoruuttaan ja tietämättömyyttään pilataan loppuelämä?2461557- 871391
IL - VARUSMIEHIÄ lähetetään jatkossa NATO-tehtäviin ulkomaille!
Suomen puolustuksen uudet linjaukset: Varusmiehiä suunnitellaan Nato-tehtäviin Puolustusministeri Antti Häkkänen esittel4021374Nyt kun Pride on ohi 3.0
Edelliset kaksi ketjua tuli täyteen. Pidetään siis edelleen tämä asia esillä. Raamattu opettaa johdonmukaisesti, että3981292Kiitos nainen
Kuitenkin. Olet sitten ajanmerkkinä. Tuskin enää sinua näen ja huomasitko, että olit siinä viimeisen kerran samassa paik21079Esko Eerikäinen tatuoi kasvoihinsa rakkaan nimen - Kärkäs kommentti "Ritvasta" lävähti somessa
Ohhoh! Esko Eerikäinen on ottanut uuden tatuoinnin. Kyseessä ei ole mikä tahansa kuva minne tahansa, vaan Eerikäisen tat381037Hyväksytkö sinä sen että päättäjämme ei rakenna rauhaa Venäjän kanssa?
Vielä kun sota ehkäpä voitaisiin välttää rauhanponnisteluilla niin millä verukkeella voidaan sanoa että on hyvä asia kun329874Miksi Purra-graffiti ei nyt olekkaan naisvihaa?
"Pohtikaapa reaktiota, jos vastaava graffiti olisi tehty Sanna Marinista", kysyy Tere Sammallahti. Helsingin Suvilahden257855