PureBasic

Forums PureBasic
Nous sommes le Lun 23/Sep/2019 0:05

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 1 message ] 
Auteur Message
 Sujet du message: DayOfWeekAsm (pour archive)
MessagePosté: Jeu 19/Déc/2013 19:03 
Hors ligne

Inscription: Mer 14/Sep/2011 16:59
Messages: 905
Code:
; DWORD DayOfWeek(DWORD Y, DWORD M, DWORD D, DWORD Gregorian)
;
; This function calculates the day of the week for the given date. Each day of the week is identified by number:
; 0 - Sunday, 1 - Monday, 2 - Tuesday, 3 - Wednesday, 4 - Thursday, 5 - Friday, 6 - Saturday.
;
; Parameters:
;   Y - year,
;   M - month,
;   D - day,
;   Gregorian - chosen calendar (0 - Julian, 1 - Gregorian).
;
; Returned values:
;   * 0, 1, ..., 6 if the date is valid,
;   * -1 for the invalid parameters.

Procedure.l DayOfWeekAsm(Y.l, M.l, D.l, Gregorian.l)
  EnableASM
;    PUSHFD
;    PUSH   ebx edx

DateToAbsDayNum(Y, M, D, Gregorian)

  TEST   eax, eax
   JZ   l_dayofweekasm_error

   MOV   ecx, 7                     ;
   XOR   edx, edx                  ;
   ADD   eax, 5                     ; edx := (eax + 5) mod 7 = (N + 5) mod 7
   ADC   edx, edx                  ;
   DIV   ecx                     

   XCHG   eax, edx               ; eax := edx
   JMP   l_dayofweekasm_theend

   error:
      MOV   eax, -1
      theend:
      
      DisableASM
      ProcedureReturn
      
;    POP   edx ebx
;    POPFD

EndProcedure


M.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 1 message ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye